I want to know if there is a Unified UI framework that I can use when creating a mobile application that can be used between iOS, Android and Windows Phone OS? I have never touched HTML 5 but I heard one can create complex UI so that it will look more or less same across these platforms. My idea will be to create one application, have a generic framework that can be ported easily.
EDIT:
Just found this site http://en.wikipedia.org/wiki/Multiple_phone_web_based_application_framework
There are lots of platforms, Corona, Titanium, PhoneGap and of course HTML5 to name a few. This does put limitations on performance and on the features that you can take advantage of. I'm not sure if any except HTML 5 supports Windows phone, but they all support Android and iOS.
Related
I am interested in writing a single code-base for an application, that will work across iPhone, Android and Blackberry mobile devices as well as on desktop browsers like Firefox, IE and Chrome.
Is this possible or I am just dreaming?
Also, another limitation I have, is that I want to use a .Net programming language for this app in combination with HTML5, jQuery and CSS3.
Technology changes very rapidly nowadays by every month, and I was wondering if this is possible now in Nov, 2012. I knew it was not possible in May, 2012.
You can use:
PhoneGap
Appcelerator Titanium
Yes they will render Html Table's fine.. There is really little limitation if any when using html. The only restrictions are if the browser supports Html 4.x which most now support HTML 5 so you will be alright. Your CSS will be the main thing that determines how the items are rendered on different platforms nothing else.
Depending on what you want to do, you can always use C. A library function written in C can be accessed from within Objective C on the iPhone, via JNI on Android and via CGI or most server-side scripting languages on a webserver (Ruby, PHP).
I dont know of any library that would generate user interfaces for all these platforms and I dont think that would even make sense because user interaction will be so much different.
In case you want to create a game, have a look at the Unity Game Engine which runs on a number of different platforms.
I have developed application for android based mobile using Java. I have tried developing apps for Windows based mobile phones using C# and heard about iOS that one would need to know Objective C.
Wondering if there is any way to have one language to develop an application that can run on all these platforms. I understand every operating system executes programs having different binaries that it execute. But just wondering if there is any common platform like JRE that is run on these mobile operating systems.
Thanks for the reply
Short of working with HTML mobile webapps, I reckon your closest bet to a common language between the 3 platforms would be C# using Mono.
Check out Mono for Android and MonoTouch for iOS both supported by the same company.
Whilst you could probably use the same language for your apps and even share internal APIs across the different platforms, you would still start to encounter differences in how the UI is handled on each of the platforms.
There is a project: http://www.appcelerator.com/platform which can be used for writing apps for Android and iOS... But from my experience I can tell that this is good only for simple prototype apps. The more fancy app, the bigger issues you would have with it.
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
Hello everyone and thanks for viewing this question :)
I am an indie to-be-developer and want to make apps for android, windows 8 desktop and metro.
After having read through a lot of forums and blogs, I believe that perhaps to make the best looking(native-feel) apps I have to learn
Java for Android
HTML,CSS and JS for Metro
Something else for Windows desktop
What I need your help in is, whether there is any one particular language which I should start with which will make my journey better ?
By app I mean something to do with sharing and transferring of files.
P.S. Read that Python might be perfect !
Do you agree ? Please suggest something.
As Tanis alluded to, you'll need to determine where your goals are in terms of "rich functionality versus maximum reach" - and from your "best looking (native-feel)" comment, I'd say you're leaning toward "rich"
Pure HTML5/CSS/JavaScript will give you the greatest reach because of browser ubiquity, BUT you can still use HTML5/CSS/JS for native development for modern Windows 8 applications and via PhoneGap for Android and other mobile devices. Having one code base AND supporting native features across those platforms would be difficult, if not impossible, but with the right design and architecture you should be able to get a great amount of reuse of your HTML/CSS/JS assets.
Another option, since you've mentioned Windows Desktop as well, is to use WPF and XAML with C#. You can build native Windows desktop applications with it, and those same technologies (XAML/C#) are one of the three primary development options (along with HTML5/JS and C++/XAML) for modern Windows 8 (nee Metro) applications. For the Android piece of it, Xamarin's Mono for Android lets you reuse many of your C#/.NET assets for deploying native applications to Android (and they have MonoTouch as well to add iOS to your arsenal!)
As for Python, productive and powerful language, and great for backend services - like the plumbing for sharing and transferring files - but it wouldn't be my tool of choice for building mobile apps.
If you want the highest level of cross-platform compatibility, a web-app (typically HTML, CSS, and JS) would be best. Making a web app will help ensure that your app works on nearly every device with a web browser, and you only need to maintain one code base.
The trade-off is that you often lose some features, such as the use of some of a phone's sensors.
If you want to make native apps for each, then I would suggest Java (particularly for Android) or C/C++ (particularly for desktop environments).
Python is an excellent starting language as well (and codeacademy has some great tutorials), but isn't as directly applicable to app development as Java or C/C++.
We will develop a, social network integrated mobile application which will need to access native device capabilities but 90% of the logic will be implemented in the HTML5/Javascript code posted by Ruby back end to the device. Thus, we would like to update or change the logic/GUI of the app without user involvement. We have strict deadline and have to support iOS, Android and Blackberry.
In this case, what approach would you recommend us? We considered the approaches below but could not decide since we do not have any experience with mobile development even if we are experienced in Ruby, C/C++, Java, Javascript, Flex.
Our considerations:
Develop native apps for each platform and embed the native browsers
to implement our logic, which can take too much time.
Use one of the frameworks for cross-platform development such as
PhoneGap or rhomobile. In this case, we are afraid of facing some performance issues. We would love to hear the experience of developers with those frameworks.
Use Adobe Air for accessing the device and its WebKit component for the rest.
First, I hope you understand that there is no simple answer. At this junction, having been looking at cross-platform solutions for mobile development for two years, I feel that in order to get fully native UI look, and to access all the device and UI features, one is forced to produce native application on each platform.
But, since you asked about cross-platform tools, here's a list of the main contenders:
Sencha http://www.sencha.com/products/touch “Sencha Touch is the world's first app framework built specifically to leverage HTML5, CSS3, and Javascript”
Dojo http://dojotoolkit.org “Dojo saves you time, delivers powerful performance, and scales with your development process”
Phonegap http://www.phonegap.com “PhoneGap is an open source implementation of open standards”
jQuery Mobile http://jquerymobile.com “Touch-Optimized Web Framework for Smartphones & Tablets A unified user interface system across all popular mobile device platforms”
Rhomobile http://rhomobile.com “Free and open source mobile application framework”
Titanium from Appcelerator http://www.appcelerator.com
There are plenty of comparisons online, including on SO, and this fellow actually tried to use several platforms, code included.
Anecdotally, I have seen Phonegap produce a rather iPhone-centric look, that may not mesh well with Android, plus showing performance problems when loading screens (there may be workarounds via pre-loading). Also, access to more complex devices was limited, or at least lagging. Rhomobile is a good fit for data-driven apps (simple display of large databases), but architecturally could show performance issues, so check for yourself. Personally I did not get into Sencha, Dojo seemed a little small, and Titanium showed dated architecture. So next time I'm attempting a cross-platform app, I'll give jQuery Mobile a serious try.
Let us know what you pick and how it works out.
Iam using this rhomobile rhodes for my cross-platform development App which will run in Android, Blackberry and iPhone.
We have developed application and sucessfully runned in all devices without any issues. we used ruby for backend webservice call, And remaining app is constructed with HTML5 and java Script. I didn't face any issues regarding rhomobile.
intially we faced memory issues, But later on we resolved this issue by implementing local storage for our App. For android it wont supports local storage so we used Rhom Storage only for Android Device.
Sounds like a project doomed to fail.
If I were you, I'd build a mobile-friendly site for all 3 platforms if deadline is tight. What native features do you even need, first off? If it's something like a camera, you're better off just build a native app for all 3.