We're developing a mobile website, which we want to say will be accessible by users with Android & iPhones/iPads. I know websites are accessed via the browsers, of which there can be many on a phone, but we want to test them on older operating systems. We want to support a range of users, many without the latest versions of the operating systems.
So I am being asked what devices we need to go out and buy. Now I am assuming most come with the latest OS, and I'm pretty sure you cannot downgrade an OS on either Android or iPhone/iPad without "jailbreaking" the device. Surely there must be some other way of doing this?
How do people test their sites on older systems?
This would apply to Windows phones as well...
A service like this might actually save you some money in the long run:
http://www.browserstack.com/
Other than that, iOS has a significant market share in iOS7, a little in iOS6 and a negligible amount in lesser versions:
https://developer.apple.com/support/appstore/
Covering the last two versions should be good enough for you.
Even if you could find emulators, why not just buy these older devices used? They could be had relatively cheaply and they would also give you the same performance characteristics, which would help in performance benchmarking.
Also, if you use a good mobile library, it should provide sufficient backwards compatibility -- not that this is a replacement for testing :)
You might look into Eclipse. I use this for developing my Android benchmarking apps, mainly via Linux, but some via Windows. It is capable of emulating a wide range of phone and tablet sizes, different CPUs and Android versions, including old ones. It is slow, but the emulated devices have browser and email apps. I don’t know how real the OSs are. It seems that there might be a version for Apple, but I have not studied the detail.
I've gone a long way to find a method, that, ultimately, doesn't work. But read on.
You can download old versions of WebKit. That's not the same as having the real phone, but can help you with some rendering issues.
To do this, you need to figure out which version do you need to test your device. Go search for devices' user agent strings. For example, this string:
Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H321 Safari/600.1.4
Means that iOS 8.4.1 uses Webkit version 600.1.4.
Then you have to figure out which Webkit revision number corresponds to that version. WebKit tags list is helpful here. You can also try searching Google for webkit trac release 600.1.4. For my example, it's revision 171707.
Now go to http://nightly.webkit.org/builds/trunk/mac/1 and find the right (or closest possible) revision of WebKit, download and use it for your testing.
Now I've really found and downloaded it, it says that my new OS X is not supported for this old build. :(
Related
I have a very big problem and unfortunately I cannot find a solution. Help from some professionals would be really great. Thanks!
The little problem
I have a Angular Web App / Android App using Cordova. My app needs at least the Chrome Engine 50 to support all functions and looks right. Unfortunately I noticed that there are many devices that use a much older version. Also the devices do not use a common source for the Chrome Engine. Some use the Chrome Browser itself or the Android System WebView. In these two cases I can tell my testers, install the two things and then it works. Currently I check at the start of the app which version is installed and if it is less than 50 I show an info that users have to update ther apps / components particularly important here the two things (Chrome Browser itself or the Android System WebView). I rather say my users that they should update all ther apps because some hardware manufacturers have their own apps that include the Chrome Engine. That alone I find very unpleasant.
The biger problem
But it is worse with devices that have their own Chrome Engine built into the firmware. So one that you can not update at all via the apps update only just the hardware manufacturer of the phone can update them with firmware updates. So many cheap devices that don't get any more updates simply fall out and bring me possibly bad ratings.
What can you do?
Maybe someone has an idea? Because this way I can put my app in the store from Android 4.4 on but even 6.0 devices have older Chrome Engine versions in their firmwares. Can't I provide a chrome engine version or say I use it there from Chrome or from the Android system WebView? I'm really on the edge and need a clever solution.
I would be very happy about some help or exchange. Thanks a lot.
Best regards
Robi
We have an iOS html5-based app. One of the questions that's coming up a lot is if and when we are going to port to Android.
Because it's mostly html5, a port should be relatively easy. However, the HTML looks different on my Moto G than it does on iOS, even though Chrome on my mac does render it correctly. Now, I have some experience with cross-browser html development from back in the netscape/ie6 days, so I can probably figure out what's going on.
What worries me more though, is the fragmentation. If I get it to render correctly on my Android device, how do I know it works correctly devices with an older version of the OS too? On iOS, we simply require iOS6, as most iPhone users upgrade their OS. On Android, this is a lot more difficult, as users don't tend to update (or the manufacturers don't even provide updates).
Do I need to get my hands on a ton of different devices to test on? Any easier ways to test this? I'm new to Android development, so any advice would be greatly appreciated!
This is a common issue across Android Development. Device Fragmentation... our nemesis. What will make it even more difficult, as I have experienced, is that Android ditched the old WebView in favor of a Chromium based WebView in KitKat. So even the APIs are no longer the same from your Moto G to previous devices.
That said, there are a fair amount of resources available in helping assist with creating a Web App that will work with your site and the native device. Quite a few examples too.
I would begin here: https://developer.android.com/guide/webapps/index.html which includes a subsection devoted entirely to the Chromium changes incorporated in KitKat (https://developer.android.com/guide/webapps/migrating.html)
Additionally, there is this Pixel Perfect information site as well: https://developer.chrome.com/multidevice/webview/pixelperfect
Now you can set your minimum accepted and targeted API levels on Android, just as you would on iOS. For instance, if the minimum is 15 and it is targeted for 19, then you are specifying that your app will work for KitKat (4.4) devices, but support as old as Ice Cream Sandwich (4.0.3). There's really no reason to target an API lower than 15 anymore, unless something is very specific business reason to target a device that low. By specific, I mean more distinct than "we want to reach as many as possible."
Finally, there are emulators that you can create through the AVD (Android Virtual Device) manager that can replicate various OS levels and hardware configurations. A very popular emulator company called Genymotion (http://www.genymotion.com/) is also frequently used, however it is not free for commercial use.
I'm currently developing apps for iOS, but I also want to start developing for android. The device to use for iOS development is not too hard of a choice, because, well, you don't really have much of a choice, either an iPhone, an iPad or an iPod Touch, end of story. But for Android, you have a much wider spectrum, there are many different models and many different brands. So, what would you recomend for Android development. I don't want to spend that much money, but also I want a device that won't get obsolete too soon. Any suggestions?
The Nexus series of dev phones should be an obvious choice since they are the first ones to be updated with new releases.
Also, as rony l pointed out, they are installed with vanilla Android and are not contaminated with 3rd party software.
I would choose the latest Nexus Series phone since it is the most 'Google Android' phone out there. They seem to be the first ones to be updated when new releases of android comes out too! The Nexus S is a good shout since it's the latest one.
Nexus S is a good choice.It's new android phone from Google and is quite well for development. You can read more here: http://www.google.com/nexus/#/tech-specs . But of course it's better to have some devices for testing.
You are best to use a Google branded phone since it has no extra "skins" on top of the OS like most other brands do. The Google Nexus series is discontinued now, so get a Pixel phone instead.
I have a Xoom tablet and it would be great if I could run statistical analysis using R on it. As far as I know it is not possible to use R on iPad due to license problems (GPl x iTunes etc.) and a lack of compiler for Fortran in the Apple tablet.
But what about tablets using android? Arguably, the GPL issue is not a problem, so any help here on how to use R on my tablet?
I used Linux Installer from http://android.galoula.com/en/LinuxInstall/ (my Dezire Z was rooted beforehand), installed stable debian and R! on this Linux install. I`m not a Linux-geek and total time for installation (first time loop file size was insufficient, and I repeated the whole process) wass less than hour however.
(source: gyazo.com)
At some point, smartphones and tablets will have browsers capable enough to run RStudio in its server mode via the browser. Currently, the latter demands too much in terms of newer GWT, Javascricpt, ... magic that it remains limited to (recent enough) desktop browsers; see here for a bit more on this.
You can always ssh out though. Connectbot is a capable ssh client for Android, and of course free. No graphs though.
The Android SDK offers developers the facility to program in Java, ... not C or Fortran, which are the languages in which R is written. Although some have said that hacking the Android tablets voids their warranty and prevents upgrades, Motorola only requires that the device be relocked before doing upgrades. For this question I think it still boils down to "if you have to ask the question, then you cannot do it".
EDIT: But somebody else will probably try it.
(I haven't found gcc for the Android.)
I would like to learn mobile development for fun and as well to enrich my resumé.
I'm currently developing in C/C++ at work on Windows (and sometimes with C# that I don't like too much). I have a nice Android phone and an iPod touch, so I wonder what is the best enviroment on which work.
Sure iPhone/iOS now has huge user base and a lot of attention, but it is used just i
on 3 devices from a single vendor (iPhone + iPod touch + iPad), Android instead is used by a lot of vendors, however is not gaining the attention it deserves.
I own a MacBook white so I can develop for iOS (I even have installed XCode but it seems a mess to me), but I prefer to work on Windows and I downloaded Android SDK + Eclipse and it seems much more easy given my Visual Studio background. I also know some Java and I'm already resigned to Linux.
So... which one should I learn, also given my background?
I don't think there is a real Answer to your question but since you already have the Android SDK and Eclipse set up why not try that first. Then if you don't like it try something else.
I found it very easy to deploy application on the Android Market and the registration fee is very small.
Android programming is a little bit difficult. Apple provide, in its development tool, a storyboard system that make very simple to control the flow of the app. Android is a bit more complicated.
On the other side, Apple programming is expensive: you need at least a Mac Book, an one between Iphone or Ipad. Last but not least, you need to sign to the apple developer program if you want to publish the app or to test it on a real device, which means 80 dollar/year. You can develop even without the program, and without a real device (iphone or ipad), but this means no possibility to test on a real device, which provides some characteristics that the simulator doesn't provide. And still you need a Mac, for Xcode (the apple developer tool) is only for Mac.
I believe though that is only your choice. Personally, i would begin with Apple in order to start with something that is simple at the beginning, but only if you have all the instruments listed above. For fun, Android is better: more complicated but free.