I am looking into building my first Android application and was wondering what is the best approach to take for an experienced GWT developer.
During my research I found phone gap which helps you develop for multiple platforms using Html CSS and javascript, when I kept searching I found mgwt and gwt-phonegap which I guess will be great for a GWT developer. Before I start really looking into it I wanted to ask the experienced phone developers around here if I am in the right direction. Maybe using the plain SDK will be easier for me, after all I only want it to run on Android based phones. Maybe someone can offer other alternatives ? My application is pretty simple but demands using some of the phone's APIs like location and notifications.
Thanks!
You might be interested in this video which explains the basic concepts around mgwt and phonegap: http://www.youtube.com/watch?v=0V0CdhMFiao&feature=plcp
Of course there are many different ways that you can go with developing a mobile app and GWT and Phonegap is one of them.
Related
I have an online travel guide and I want to make an iphone/android app out of it.
It should be pretty simple: I just want exactly the same pages as the website, looking exactly the same (it's mobile-friendly) but all saved inside the app, so my readers can access it without the internet connection.
Do you know if there's any easy way of doing that? And what technical problems I might encounter?
Thank you!
PS sorry if it seems like a general question, but that's why I'm asking: to know more specifically what the possible problems might be.
You can make an HTML5 app with all the pages of your website that runs locally on your phone.
Check out Phonegap. It's mobile app framework thats uses HTML, CSS, and Javascript. The great thing about it is you can make publish phonegap apps to multiple devices - iOS, Android, Windows and more. http://www.phonegap.com/
There is a slight learning curve but once you learn it you will come to find that it is very easy.
Here is an example of apps built with Phonegap. http://phonegap.com/app/
I wanted to get a more experienced opinion on something I recently found out. A couple of months ago I set a goal to build myself a mobile app, and the first thing I did was go to developer.android.com and begin reading documentation on how to go about doing this.
I've invested a lot of time in understanding Android Studio and how to make simple apps (and I'm just now getting the hang of it all), but I just recently read about frameworks like PhoneGap(which let web devs who know HTML,CSS, and Javascript make apps too).
Before learning Android, I taught myself web dev through the Odin Project, which taught me a fair amount of HTML, CSS, and Javascript (little iffy on this language, but I'm sure it's something I could pick up easily since I already have a bit of experience).
I'm wondering what you guys feel are the limitations of using these frameworks and whether I should switch over to them, as opposed to continuing with Android since things are beginning to click for me.
Thanks!
I have developed apps for both Android and Phonegap. Phonegap takes advantage of your web development experience and lets you build mobile apps with ease. But it's not a replacement for Android API itself. A good phonegap application requires knowledge about web development and Android API.
However if your aim is to develop an android application, and you are comfortable with web development and Android, I would advice to take Android API.
Phonegap as wonderful as it is for web developers, and startups who can't afford to have dedicated resources for Android, iOS separately, has its limitations.
Performance : Phonegap app's performance is not at par with a native
android application.
Functionality : As one would expect you can't have all the functionality support a native android application has.
Look : You could easily tell apart a phonegap application from a native one. Given phonegap renders all the content in a webview, the look of native ui elements is lost
I think you will always need access to the native API to make good apps.
At least the navigation should be native, so that your app has the look and feel that the user expects, and so that stuff like the back button get correctly handled for you.
Even if there is some plugin that does that for you in a perfect way, I believe it's beneficial to know how Android works.
In the end, frameworks like PhoneGap add a layer inside your app rather than removing one, and it's always better to understand what goes on inside your app.
So the time that you've spent learning native Android won't be lost.
However, it makes sense to use HTML/JS if you want to share code between different platforms.
I think this article from Basecamp shows a very compelling example: https://signalvnoise.com/posts/3743-hybrid-sweet-spot-native-navigation-web-content.
I hope this question is specific enough. I have a client for whom I made an iOS native app and an Android native app (same app, different platform). It's a fixed pixel design (I made this work for Android somehow:) and it works on iPad, iPhone and most Android devices (with some letterboxing). Now I am asked to write the same app for the Windows store and they want me to use HTML and JavaScript. My question is, when I use HTML and JavaScript, would it be "easy" for me to use this code into some sort of hybrid solution (PhoneGap, etc)? The app doesn't need much complicated functionality but does need to support push notifications on iOS and it needs to be able to play videos, preferably HLS. Any advice on what the best hybrid solution and do hybrid solutions allow you to build for Windows 8?
I'm a cross-platform developer working on PhoneGap and Titanium Appcelerator. The correct answer is "It depends". Currently the state of cross-platform development is not very recommendable. Yes, you can write plugins for PhoneGap and it does support windows phone but you will have a ridiculously hard time getting them to communicate with each other properly. I learnt this from experience.
If it was a hacking/hobby project to further the cause then I would say go for it but for a time-bound client project like yours, I would recommend against cross-platform solutions and go native instead. Plus native always gives considerably better control, speed and ease of development. You will probably develop it faster in native than cross platform anyway. I've played around with windows SDK and it seems easy to use and well-built with good documentation and you can use C# which is similar to Java since you have already used it on android.
You can also build windows 8 desktop apps using html and javascript natively but this isn't present in windows phone 8 yet.
As I mentioned, If you don't need too many native controls, then you can go cross-platform. For your requirements, it can be done. If you have already developed android and ios apps and only need windows app now, then going native would be easier. But if you have to make all 3 then you can go cross platform if your requirements are restricted to what you mention. Here's a good quora thread that discusses the pro's and cons:
http://www.quora.com/Is-Titanium-good-for-developing-iPhone-apps
Take a look on Xamarin
Main idea - they brings real native code for all platforms.
They have instruments to compile C# code that it can be used at all platforms
For example you should create UI in XCode (for iPhone) and use ModoDevelop to create DAL/BLL, then you can re-use C# code base over all other platforms
They have cross-platform iPhone/Android/WP7/W8 samples on GitHub
Also see Q&A on Stackoverflow tagged Xamaring
We are starting to build multiple apps for multiple clients both in IOS and Android native platforms. The problem is we are going completely native which is taking too much time.
I would like to look at the linked in method (http://arstechnica.com/information-technology/2012/10/a-behind-the-scenes-look-at-linkedins-mobile-engineering/) which is a more hybrid approach using HTML and native code.
The problem is I don't think Phonegap is that good - good for prototyping but maybe not for full versions of apps as it can be a bit slow and a bit buggy.
I would like to look into doing a model where we create like 65% HTML and 35% native to that device (like linked in)
Would anyone have any suggestions for this? Would people say we need a massive development team to pull such an approach off?
I welcome thought:)
Thanks
I need to develop an Application for both iPhone and Android platforms. I am looking for a cross-platform development frameworks. The important factors need to be taken into consideration are :
The App will be running in intranet environment (with NO internet
connection).
Drag and drop features will be available in this App.
Needs to use the barcode reader library.
Needs to use map (it will probably be a custom map)
Receives Push notifications (currently I have mqtt in mind, since
there is not internet connection)
If possible I only want to maintain only one source code for both platforms. I have done some research and I found 2 frameworks which are PhoneGap and Mono(touch and droid).
PhoneGap seems to be slow.
Mono need two code base for 2 platforms, only the libraries can be
shared (correct me if I am wrong). This is my another worries about mono: http://redth.info/2010/04/09/is-monotouch-now-dead-in-the-water-what-does-apples-new-iphone-developer-agreement-mean
I know the native is the best but for the sake of maintenance and reusing our developer talent (which are C#, HTML, JavaScript) we need to find out the second best option.
Note : Please bear in mind the first 5 features listed on top for your answer.
Thanks in advance.
UPDATE:
After exploring a few more tools, I like the performance of Appcelerator as well. But writing the whole app in JavaScript looks very messy to me and can't use OOP. And the extra package size of (5~7 MB) is also something to take note for frequent releases environment. I like to hear from you guys as well. I will be updating our decision in coming few weeks.
This recent article here may be helpful. It contains a rundown of several new cross platform mobile frameworks including Mono, Appcelerator Titanium, Rhodes, PhoneGap, MoSync and Moai.
From reading your requirements I'd say that either MoSync or Titanium might be the best fit for you. Apart from PhoneGap, which is really just a web app running inside a mobile browser (and might be the reason you thought it was slow), they all generate native UI code apps.
You may want to look into this article comparing 5 different cross-platform mobile development tools.
This Wikipedia article may be helpful as well.
go for http://www.appcelerator.com/
They first compile code in native code so performance is like native and they have barcode reader, push notification (via urban airship) too...
How about doing a hybrid application, using a mixture of native code and HTML5. Write native code for all the IO, and heavy lifting, and for the GUI use jQuery or similar in a web control embedded in your app. Android has a web control that allows you to interact with javascript. I assume you can do the same with Apple. I'm trying to do something similar myself using Monodroid, and its looking very promising, although I discovered Monodroid does not have native Javascript interface yet.
Just so you know, we were using Appcelerator at my last company, and the performance for Android was less than desirable. Our lead developer found the Mono products, and hasn't looked back.
I have been making applications in objective-c for a while now and feel i have a good understanding of it. I have made many applications and started to make a few basic games.
However now i want to target android as well. I recently saw applications such as Titanium and the Corona SDK that let you create applications in one language and deploy to both platforms.
My question is, for anyone experienced with these, would it be better to just learn how to code android applications and then make android and IOS apps separate, or would it be a much better idea to start using one of the development tools listed above?
I am mostly talking about the creation of standard applications, not games.
Also more importantly, if i was to apply for a job developing apps, what would the company look for? someone experienced in each platforms sdk respectively or someone familiar with the titanium or Corona sdk to code and output the applications simultaneously.
I have looked around but could only find info regarding people who have not started either android or iphone development. I am already very familiar with objective C and iphone development.
If anyone could help that would be great!
Thanks for your time!
I would suggest learning the native Java SDK. If you do anything more than simple apps, you will feel constricted and limited by the "write-once" SDKs, as you will want to exploit the special features of each platform.
In terms of employability, if you know both native iPhone and Android SDKs, I would expect your employability to be much higher than just knowing the cross-platform language. By having a diverse knowledge of "complex" languages (such as Java, and Objective-C), if employers wanted a cross-platform approach, they are likely to recognise your adaptability to the task at hand. Conversely, by only knowing cross-platform development, you are limiting your chance of work - if the client wants to use a more in-depth feature of the platform, which is not available in your cross-platform language.
Do you have any experience with java? If not that is where I'd suggest you start. And unfortunately there is no end all be all for what potential employers may be looking for. It would depend on specifically what they are aiming to have you create(Something that makes more specialized use of one of the platform features would likely require a native app. Where as something mostly based on content could use one of the phoneGap type solutions because it would result in farthest reach). I can tell you though any of the "write once - deploy everywhere" platforms that are currently available will limit the amount of platform APIs you'll get access to. Because of that I would personally suggest that you dig into the native platform some and once you have a decent understanding of how things fit together at a high level maybe start looking at the other solutions.
If you know Java, then my suggestion is to use native SDK for developing in Android. The OO concept is similar, but the design is somehow different from iPhone development.
Platform like Titanium may be good for standard apps. But I think gradually you will want to use and tweak the native libraraies functionality. Then common frameworks are weak.
I have been developing for iPhone, Android, JME, BlackBerry also tried HTML5, my understanding is to use the native platform if possible. But the app is small, e.g. a simple RSS reader, then common platform is okay.
But in most of the cases, developer want to use special features provided by the native SDKs.
If you want to stick to Objective C, checkout out Apportable, which enables you to build and deploy Objective C apps to Android.