Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm working on a web project where it has become clear that having some Selenium-type automated acceptance tests would be very helpful. But the project is a web site for mobile/handheld devices, not desktop browsers like what Selenium supports.
Googling around a little uncovered Frank for iOS and Robotium for Android. Are these the two tools to use? Or is there something as good or better that might also allow me to use one tool for both Android and iOS?
You might also want to look into Cucumber which basically offers a high level language to execute tests. A test consists of a number of steps and the underlying step_definitions are written in Ruby.
Calabash offers step definitions for Android and for iOS like pressing a button, swipe, scroll, ...
Not sure though how this works out for web testing on mobile devices.
There are multiple tools that can test iOS and Android applications. Here is a selection:
MonkeyTalk: Free
SilkMobile: Paid, free trial.
EggPlant for mobile: Paid, free trial.
I never use any other for android but Robotium is best in my case.
EDIT:
Android WebDriver allows to run automated end-to-end tests that ensure your site works correctly when viewed from the Android browser.
Selenium - Browser automation framework
WebDriver is selenium 2 and it support both Android and iOS.
You could also consider SeeTest from experitest, it support both dom and image processing.
MonkeyTalk seems to be able to handle both iOS, Android and web. Disclaimer: I just started playing with MonkeyTalk and did not use Robotium.
Another option is Appium, a Selenium-compatible mobile automation tool that can automate mobile apps, including mobile browsers.
Looks like the answer is: Yep, those are the two standard tools right now (as of October 2011, when this answer was originally written).
There are services that may allow automated tests on both real (not emulators or simulators) iOS and Android devices including MonkeyTalk and experitest (as of this revision to the answer in April 2013).
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I’m getting started with using Cordova/PhoneGap for Android/iPhone app development and am very confused with the number of frameworks out there. I have taken tutorials by Christophe Coenraets (here and here) as a starting point and managed to get something working, but my current problem is getting a nice UI.
The tutorials mentioned above use http://topcoat.io/topcoat/ and http://goratchet.com/ but both of them seem to have very little support. But these really appeal to be because they are so lightweight and are independent of the functional aspects of the code.
I've looked at http://mobileangularui.com/ which looks great, but I'm really confused by "Build HTML5 Mobile Apps with Bootstrap and Angular JS" on the homepage - can I use just the UI "layer" or does it need both Angular JS and Bootstrap. And are these essentially different, competing frameworks?
Finally, I've created test apps with these and they all work fine on my Android 4.2 phone, but all of the have various issues (usually will not scroll) in my older Android 2.3 phone - do these modern frameworks not support a phone of that age?
Thank you in advance.
Why not try Ionic Framework
I have used ionic, angularJS, phonegap/cordova together for Android/iPhone development and its quite nice. Not that hard to learn and quite fun to work with.
Choosing Mobile frameworks is based on the requirement of the app. There are various frameworks available, most popular and widely used are jQuery Mobile, Sencha Touch and others..
This article has introduction to Cordova/Phonegap and comparison to some of the Mobile Frameworks, you can choose it based on the requirement. For best practices in Cordova, it is always better to use SPAs - SinglePageApplications for that jQuery Mobile and Angular/Backbone can be combined.
Angular vs Backbone!
For your other question on older phones like Android 2.3 phone:
These frameworks are built for/using many features like HTML 5, CSS 3, localStorage, local database as well and others.. so HTML 5 support is not completely supported in older phones/Android versions, also local storage, sqlite and many others..
You can check the support for HTML 5 here, also for others you can check in the same website or Mozilla Developer Network for JavaScript.
First and foremost - your Cordova applications should adopt the SPA (Single Page Application) design. Loosely defined, a SPA is a client-side application that is run from one request of a web page. The user loads an initial set of resources (HTML, CSS, and JavaScript) and further updates (showing a new view, loading data) is done via AJAX. SPAs are commonly used for more complex client-side applications. GMail is a great example of this. After you load GMail, mail views, editing, and organization are all done by updating the DOM instead of actually leaving the current page to load a completely new one. More.....
Examples of SPA libraries(UI) you can use in your Cordova applications are:
1) AngularJS
2) jQuery Mobile
3) Kendo UI
4) Sencha Touch
5) Backbone
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I would like to have a cross platform framework as these platform solutions.
My application requires location service, socket programming, camera access and push notifications. So, the web app is not the way to go.... Is there any tools or framework to doing this? Thanks.
Because you want to access platform-specific features such as camera, GPS, notifications etc., you're going to need to call platform-specific API's.
As such, at least SOME of your app code will need to be platform dependent. However, there's a good chance that a majority of your app's code & logic can be shared across multiple platforms. I would STRONGLY recommend Mono as a great multi-platform development environment. On Windows & Windows Phone, your code will run in .NET. For Linux & OSX, you can use Mono. For Android & iOS, you can use Xamarin's tools.
The key here though is that if you package your app logic into "Portable Assemblies" (i.e. assemblies which take dependencies on parts of the .NET framework available across all implementations of the CLI/CLR), then your code can generally run without modification on Windows, Windows Phone, Linux, OSX, Android and iOS!
All you need to do then is build platform-specific shells that make your app look like a platform-native app using the typical controls and design metaphors of the various platforms you want to support.
HTH.
Update 2012-04-06: If you want to take advantage of Portable Libraries, here is some updated documentation on MSDN that refer to the newly updated version of Portable Libraries included in the recently released (and well-worth-a-look) Visual Studio 11 Beta.
Update 2012-04-11: A new article titled 'Create a Continuous Client Using Portable Class Libraries' was published in the March 2012 edition of the MSDN Magazine that illustrates how to use PL's to create an app for Windows Phone and Windows 8 that share the same core business logic.
http://phonegap.com/about is the best approximation I can provide.
If you're not looking at web-apps, you might want to take a look at codenameone. It's java based and they have a plugin for eclipse too.
The latest release of the Qt Framework (5.1) has what they call a "Technology Preview" of Android and iOS support. Fully released support will come in the soon to be released 5.2 version.
Given the extensive and successful history of Qt as a cross platform development framework I have high hopes for this. (Disclaimer: I have only used it for Win/Mac/Linux development so far...)
For native cross-platform framework, you should check out Crosslight. It currently supports apps development targeting iOS, Android, WP8 and Win8.
UPDATE: Crosslight includes built-in services that you're looking for, such as:
Camera Services: Taking photo from camera, browse photo from gallery, retrieve cropped image, produce either full or thumbnail version
Location Services: Get current location, get location by address, track location
Notification Services: Schedule local notification service
Connectivity Services: Check if an Uri is reachable, get current connection (WiFi or WWAN)
Many other useful services such as mail services, browser services, map services, etc.
Did you try Mono ?
You can try Sencha
Its a high-performance HTML5 mobile application framework. Works for iphone, android, etc.
Mono
Titanium
Refer to this Hybrid Mobile Application Framework.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I am interested to find out if there are any good platforms that are cross platform compatible for business apps. I know that Adobe AIR for Mobile is good for business apps and can be compiled for both Android and iOS devices(iPhoone/iPad). Outside of AIR, I don't know of any. I've looked at Corona, Unity, and Shiva 3d, but these seem to only be oriented towards game development.
My problem using AIR for Mobile is that from the experimental apps I've done in this fashion, the performance of AIR apps on Android and iOS always seem to be sluggish. Are there other SDKs that support a more responsive "write once deploy everywhere" model?
here you'll find a great article - http://mashable.com/2010/08/11/cross-platform-mobile-development-tools/
it contain mainly 5 of them -
1) RhoMobile
2) Appcelerator
3) WidgetPad
4) PhoneGap
5) MoSync
if you are looking for great performance then go for Appcelerator. It convert JS code in native app.. so performance is as good as native app.
Did you look at MonoTouch and Mono for Android from Xamarin? http://xamarin.com/
They say you can re-use up to 90% of your application logic across iOS and Android phones and tablets, and Windows Phone and then create device-native user experiences / UI with access to all the native platforms API and device sensors.
Have a look at PhoneGap http://phonegap.com/. However, testing this myself I have also found slugish performance. Having looked around on the web there is a strong battle of native vs the write once run anywhere solutions with the native option seeming faster.
check out www.madewithmarmalade.com.
Its allows you to write directly down to the bare metal, creating a single native binary that means you don't compromise speed, which I've found the problem with a number of proposed solutions.
There an English outfit, part owned by ARM, so the tech is pretty good.
For $499, you can't go wrong.
There is also AeroGear you can try.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm debating between Phonegap and RhoMobile for cross platform mobile application development. I'm a web developer with experience in Ruby as well as the traditional web technologies (HTML, CSS, and Javascript). The backend of this application will be accessed via a web browser and built with Rails. What are my chief concerns when choosing between these platforms? Which would you recommend I go with and WHY?
Thank you
Personally, I'd recommend PhoneGap because (at the time of this writing) PhoneGap has a website dedicated to it's development while Rhodes does not, and support for PhoneGap (Documentation, community, etc) is more readily available. Both frameworks can do just about the same thing by providing your phone's Web View with HTML tied to native features with JavaScript APIs. In terms of performance, they are identical because the only indicators of performance are the capabilities of your phone's web view. Plus, PhoneGap's branding is stylish and modern.
Comparing with Adam Blum's answer point by point:
No one is stopping you from implementing a Model View Controller arrangement of your code in PhoneGap.
No one is preventing you from using an Object Relation Mapper (or similar) with PhoneGap. Try googling for "backbonejs" or "angularjs".
PhoneGap has an app generator called "Build" to publish apps to all platforms easily, which is free for open source apps and up to one proprietary app, $9.99/mo for up to 25 commercial apps. http://build.phonegap.com
PhoneGap supports a large number of devices, including Windows Mobile. http://phonegap.com/about/feature
PhoneGap has a plugin for Near Field Communication (NFC) that works on Android. iPhone 5 doesn't even have NFC. http://phonegap.com/2011/09/26/building-an-nfc-enabled-android-application-with-phonegap/ This will get you started with barcode scanning in PhoneGap: Phonegap Barcode Scanner
No IDE for PhoneGap. You'll have to use PhoneGap Build or use platform-dependent IDEs to test apps.
I will just add that these are the major differentiators of Rhodes versus PhoneGap (or Titanium):
Rhodes is the only framework with support for a MVC (Model View Controller) pattern
Rhodes is the only framework with both synchronization and an Object Relational Manager, making it ideal for data intensive applications
Rhodes is the only framework with an app generator
Rhodes has broader OS support (including the only one with support for Windows Mobile)
Rhodes supports more device capabilities. It is the only framework with Near Field Communications support, realtime hardware-based barcode scanning and signature capture
Rhodes has true full IDE with an integrated debugger and a device independent simulator (something PhoneGap does not)
If you go to the google group, I think you will see that few bugs are reported there. But make your own judgement after reading the content and executing the RhoStudio tutorial (which should take less than an hour of investment). Also regression testing is executed continuously on all Rhodes checkins.
If you judge the framework by the ability to create a native app with HTML and make some device calls, PhoneGap and Rhodes are both pretty much the same. And both have few issues with bugs, as this low bar is fairly simple.
The differentiators listed above (which I summary as "modern development techniques for information intensive apps") have an inherent complexity to them. With the help of the community and a large dedicated QA staff from our new owner Motorola, these differentiator features are all now quite mature, and do not exist in other products.
Really just my two cents, I tried both (and also Adobe Flex, Corona SDK, etc), and I prefer PhoneGap, similar to #Stephan Branczyk, I had quality issues with Rhodes.
I have also observed that Phonegap applications tend to be slow on Android while Rhodes apps work fine on pretty much all platforms. Also, Rhodes supports Symbian S40 as well, something which Phonegap lacks for now. Although the support for S40 might not be required for modern apps but still if you consider the enterprise scenario then this might be a possible usecase.
I would personally recommend RhoMobile.
Rhomobile has a very good documentation.
Rhomobile has an IDE(Rhostudio).
Rhomobile has multiple components like Rhogallery, Rhoconnect and Rhoelements. Which helps you start from developing mobile apps, synchronization and deploying it.
There are no much big difference b/w both the framework architecture, both of them makes use of WebView Component for rendering and native features with JavaScript APIs.
Since you are Ruby developer it would be very easy for you to catch up with Rhomobile.
I would recommend using Plain Android SDK, if you really want to build good quality apps. It might be a little pain initially to learn Android Platform APIs in Java but its worth the effort :)
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
i would like to buy a new cell phone that runs Android. From what I heard I assume it's quiet programable and customizable. What are your Experiences?
Are there any good books on the topic?
Android is a wonderful platform, both to use and to develop for (IMHO, obviously).
I've been developing Android applications for a while now on my 1st generation developer phone, and I've just ordered the HTC Hero. For the most part, it's a joy to work with. The open source approach works really well - I often find myself looking at the source of the applications that comes with the platform for solutions.
I had no previous experience with Java before I started developing for the Android platform, but quickly learned the language and the platform. Googling for Java solutions usually leads to some hints or a direct solution.
The documentation could be a little better - but it's usually acceptable. The "getting started"-parts are fairly well explained, and the samples will get you further. The android-developers group is usually helpful, and if not there's always IRC (#android and #android-dev on freenode) and community forums where you can get help.
For reading material, I strongly recommend Reto Meier's "Professional Android Application Development" - it's far better than most other books I've read about Android. If you're lucky, you will also get answers from the author here on Stack Overflow :-)
I would say that Android devices are the most programmer/developer friendly smartphones you can get at the moment. After all, it's part of Google's strategy to attract as many developers as possible, in order to get a fast growing software landscape.
Here are some key advantages of developing for Android:
even though it's not a Sun JVM running your programs, the programming language for applications is Java, which makes it easy to jump the Android bandwagon for many developers
the developer tools can be used both on the command line, or via an Eclipse plugin called the ADT (Android Developer Tools) on all major platforms. The plugin/emulator is solid and comfortable to use.
Even retail phones are very developer friendly. Though not rooted, you can simply hook them to your developer machine using USB, enable USB debugging and off you go. You can one-click deploy your apps from Eclipse to your phone. Excellent.
While this hasn't been true for quite some time, the online documentation now actually is pretty decent
As a developer, this is maybe my favorite one: You can easily download the Android source code and read it. It's very readable, and often very helpful to get more insight into how a typical app is built, and how the Google devs solve typical tasks.
Publishing to the Android market is as easy as registering a developer account and uploading your app with a description. There is no reviewing being done by Google up front (versus the one plus months ping pong you go through with Apple each time).
Having worked with Android since over a year now without any prior experience in mobile application development, I can wholeheartedly say it has grown into a solid, well designed and easy to use platform.
I maintain a roster of available Android application development books on a wiki page and a knol.
Full Disclosure: I wrote a few of those books.
Android is very easy to program for, especially if you have experience in Java. Overall in my experience programming for it, and attempting to port an application currently on the iPhone to the Android platform is that the iPhone interface is a bit more polished still. I think they have a few more iterations of polish to go through before it can truly stand on its own in the marketplace against the iPhone. Just my opinion, though