Currently our app is two branches (two different binaries) one is for touch device (compiled with JDE 4.7), the other is for non-touch device (compiled with JDE 4.6). These two versions are the same except some UI rendering and interactions for touch devices only.
I am trying to combine these 2 into one single binary, and compile with JDE 5.0 so that it can run on OS 5.0/6.0/7.0 and 7.1, for both touch and non-touch devices. My question is how do I handle those difference behaviors between touch and non-touch devices in one single binary? Thanks!
Related
I've begun developing the iOS version of my app. While I have a working android, I don't have a working iPhone and I will not spend the $1000 for the new one. I found some older posts, which said yes to this question, but I wanted to make sure it was still valid before I buy an iPod touch. I was wondering, that so long as my app doesn't use iPhone specific hardware (like GPS) if I can just use an iPod touch for development. And if it works on the iPod touch, does that imply it will work on iPhone (again, given the hardware constraints).
Thanks for the help.
An iPod touch is an iOS device. All iOS apps not specific to just iPads will run on any iOS device, including iPod touches. This is true as long as the app doesn't list a required device capability not found on the given device.
So yes, in general, using an iPod touch to test an iOS app is perfectly fine. Use it along with all of the different simulators to make sure your app works properly on all of the different screen sizes. But you should always test an app on a real iOS device since the simulator has limitations such as no camera, inability to send email, no ability to launch other 3rd party apps, a case-sensitive file system (normally the simulators are case-insensitive), etc.
Just be sure you get the latest iPod touch that supports iOS 11 (the 6th gen). Keep in mind that even the latest iPod touch may not be useful for more than a year, maybe two, with regard to being able to install the latest version of iOS.
You could also look into a refurbished iPhone 6s or even a new iPhone SE. Both are much cheaper than $1000. As I write this, you can get a refurbished iPhone 6s for $369 USD. Though a refurbished 6th gen iPod touch is $149 USD. But buy the newest device you can afford. A cheaper device that won't run iOS 12 or 13 isn't much of a bargain.
I find the https://en.wikipedia.org/wiki/List_of_iOS_devices page useful to know what devices run which versions of iOS.
I've read a ton of threads debating if 3D touch is available on the latest Xcode 7 versions. The consensus was that it's possible but only with a 3D phone or trackpad. My question is if with the new Xcode and Simulator, has that changed?
I'm on a 2012 MacBook running Sierra:
I can see some force touch options:
But can I somehow enable those options so I can starting testing my 3D Touch code?
To test 3D touch in the simulator, you would need a force-touch trackpad (i.e. a MacBook with a force-touch trackpad built in, or a Magic Trackpad 2). If you have one, those menu items come to life. If you don't have one, you can only test on a device!
Make sure you also have a device that can support it lol. Had simulator set up to iPhone 5S/SE and didn't realize why it wasn't working (head slap)
Only a MacBook Pro or MacBook 12' after 2015 is shipped with a force-touch trackpad which you can use to simulate 3D touch in Xcode's simulator. You can check that with your mac in System Preferences->Trackpad->Point&Click.
I am currently developing iPhone apps on my iPhone 4 but I need a larger screen to test and develop on. Rather than buying a new iPhone 5 to test on (as rumour is that the iPhone 6 is about to be announced), I was thinking of buying the latest generation of iPod Touch. I was also thinking that my next phone will be an Android phone rather than an iPhone so thats another reason for the question.
From what I can see HERE the only difference between the iPhone 5 and iPod Touch is that the Touch does not have phone capabilities or Mobile Network support. For those I can always use my iPhone 4 so thats not really an issue.
Apart from these 2 features, are there any other features the iPod Touch lacks that I need to be aware of?
The answer depends on the nature of the apps you're developing. iPod doesn't have telephony and GPS capabilities, so if your app relies on Location Services then iPod is less than optimal (I believe Location Services are still available but only use Wi-Fi for positioning).
On the other hand, having a 4-inch device for testing is essential today, so having iPod is better than not having it.
I can't find a definitive place that list all the various devices and their versions that IBM Worklight supports. I do not see iPod Touch in the targets in Xcode, but I assume that if iPhone (iOS 5 or 6) is supported and works, then so too should iPod Touch. Does anyone know if it works?
iPod, iPhone, iPad running iOS 5, 6 or 7 are supported.
For a full list, visit:
http://publib.boulder.ibm.com/infocenter/prodguid/v1r0/clarity-reports/report/html/osForProduct?deliverableId=1343665214557
Note that it is the OS that matters, not the specific iDevice.
Creating a Worklight project and application with the iPhone environment essentially means it will also work on an iPod Touch; the only difference is whichever feature exists in one device and not the other, for example - 3G and WiFi in an iPhone versus WiFi or none in an iPod Touch, or making phone calls in an iPhone whereas this is not possible in an iPod Touch, etc...
In the case of Worklight, the lack of 3G or WiFi means that you won't be able to use the Geolocation feature in an iPod Touch, for example. You can follow this logic for any other feature...
I am forcing my app (developed in JRE 4.5) to run in non-compatibility mode for OS versions 4.7 and higher so that the virtual keyboard would not take up half of the screen space.
Now, when I test my app in 4.7 or 5.0 simulator, I see that the touch events are not working. Is there way to handle touch events in code so that I can translate it in to trackball events when running in Non-compatibility mode?
Please refer to the comments on this page for answers