What Ruby based mobile cross-platform solution to use? [closed] - android

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm looking at ways to use Ruby for mobile cross-platform development. We need support for at least Android en iOS, with Windows Phone and Blackberry support as nice to have. It'll be an app that will end up in the app stores for the general public, so it's not an enterprisey in-house only thing. So far I've found:
Rhodes, covers all the platforms mentioned and open source. We don't need the extra (paid) functionality from RhoMobile right now
RubyMotion; iOS only and costs 199 dolla, unfortunately there's no trial version available
Ruboto, Android only and open source
MobiRuby, iOS only with Android support planned, open source, but looks like it's not mature enough at the time of writing for our needs
We also have a must-have use case in which we need access both the camera and the accelerometer simultaneously and draw data from the accelerometer on screen. Because this is so specific, it's not supported in any cross-platform framework I've looked at (including others like Phonegap, Titanium, etc) and it looks like I'll need to write native code for each platform to get this working.
So far I'm inclined to choose Rhodes. It's a proven framework and seems to be able to do everything I need, including 'going native' for the aforementioned use case. Another option would be to use both RubyMotion and Ruboto, which are both solutions to write Ruby instead of Objective-C or Java. In theory I should be able to share common code (like connectivity and storage) across platforms, although I couldn't find any examples of anybody successfully using these two for writing an app that works on both Android and iOS.
I'm wondering if somebody can confirm my thinking or that I've overlooked something. Any additional insights are welcome of course.

If you choose Ruboto, you can use your UI-independent Ruby code as is. The UI code will most likely be platform-dependent anyway.
Ruboto is still young, but there are more projects starting to use it. One example is
https://play.google.com/store/apps/details?id=com.jonsoft.globalchat
It shares the communication Ruby code across platforms.
being one of the developers on the Ruboto project, I can promise you good support and the full Ruby experience.
For iOS RubyMotion looks good, but I have not used it. You should be able to use a shared code base for common logic, but separate code bases for the UI and for accessing sensors.

I would go ahead and use native Java for Android and RubyMotion for iOS and have two code bases. RubyMotion is the most stable of the ones you mentioned and worth it for iOS development, but there isn't a good alternative on the Android platform.

Rhodes has nothing do with web apps. Rhodes allows you to build native apps with Ruby and is many years more mature than those alternatives. It also supports every major smartphone OS

Related

How is cross platform mobile development done in practice today (year 2013)? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am a .NET developer (more than 6 years now) and just starting to learn about mobile/smartphone/tablets development. Logically, I (and probably everybody else out there) would like the application we create to run on all smartphone platforms. It just feels natural from the normal user (layman) perspective that if it's a "mobile app" it should run on mobile device. It shouldn't matter if I own iPhone or Android, mobile app is a mobile app. Note: I am talking about native platform development, not HTML/web apps that can be used from browsers.
So this is just a high-level overview question... what are the current strategies (in year 2013) to deal with this issue? The way I imagine mobile cross platform development works is there's probably a single common code base that implements app's business logic and then for each targeting platform we need to develop GUI part separately. How far is this from truth in practice?
Take for example the popular game "Angry Birds". I played it on iPhone, Android and even from Chrome browser on Windows Desktop (probably as Flash or HTML5 game) and each version had pretty much identical feeling when played. How did they do that? I imagine they have game engine as common code but in what language could it be written? As far as I know there is no common programming language that given the single source code files it can be compiled into native binaries for ios/android/win8 phone.
Unfortunately, there is no way to develop a cross-platform app which has really native look and feel and shares same code for all platforms.
Its possible to share some code on some platforms though (for example, you can use C/C++ for iOS and Android), but only for the logic part of your app. To get native UI you will be forced to use native APIs. If your app doesn't involve some complicated data processing then this approach may have more downsides than really helping you out.
You can get rather good platform independence with hybrid app platforms such as PhoneGap or Titanium, but that involves HTML/Javascript development which could lead to a lot of time and efforts required to bring user experience to be somewhat similar to that of a native app.
Since you are a .NET Dev one logical solution for you would be to use Xamarin's offerings. (http://xamarin.com/) They allow you to develop your back-end logic once and then compile it into all three major mobile platforms (iPhone/Android/WP). You can then use this back-end logic project to write the UI layer for each specific platform.
Another option that devs have is to use the javascript/html route similar to PhoneGap. While I haven't looked at this recently there used to be some performance hits and hardware usability gaps when going the JS/HTML route. This may have been improved now.
EDIT:
Since you specifically mentioned games like Angry Birds. The Unity platform offers very good support for development that is compatible with most devices if you need 3D.
For Angry Birds specifically...they use Box2D for the Physics and I'm not 100%, but it looks like Cocos2d to draw the elements.
If you are looking to build games and like the idea of Xamarin then take a look at MonoGame which basically looks like an XNA port to the Mono Framework.
in addition of Jared's answer, this afternoon I tested Xamarin.
You are a .Net Developer and if you are already using Visual Studio, you are so lucky. Because Xamarin has an extension for Visual Studio
I just want to give a bad impression about xamarin, you can test good ones by the time, user interface is created in a xml based file and there is no auto complete, so you have to write whole code or use properties window. But I think it will be better by the time. nice coding

Best Cross-platform development tool for iPhone & Android [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I know that similar questions were asked a lot of times already,
but today when you have so much choice I really need an advice of some one who already have an experience in cross-platform development.
I am planning to develop few applications for Android and iOS.
The applications will have to store data on the device,use calendar,send email,to talk with remote servers.As you see it is nothing special here.
I have found quite long list of platforms :
Corona(Supported Features)
Moscrif
Icenium
Appcelerator
PhoneGap(Supported Features)
Titanium
e.t.c.
Some of this platform are free and some with subscriptions.
For now I want to try some free and well documented platform that uses HTML5,JavaScript,Java or C#.
I will glad to hear recommendations and opinions.
RhoMobile – This is a solution that uses Ruby, especially loved by Ruby on Rails developers. (Free only for noncommercial applications, prices vary)
Appcelerator- – This is a solution that allows you to develop native apps with HTML/Javascript (run through a UIWebView on iPhone) . (Free)
PhoneGap - Similar to Appcelerator, I mentioned these two as they seem to have the most vibrant communities, and most extensive support. (Free)
WidgetPad are good cross platform development tools. Out of these I would rather prefer Phonegap for iOS and Android Development.
Edit- Why I prefer Phonegap
Phonegap is framework to deploy your web based skill to multiple platforms.
Phonegap just executed inside a UIWebView control, and the PhoneGap JavaScript APIs your js calls are routed to native APIs.
Advantages of Phonegap:
Build your app once with web-standards
Wrap it with PhoneGap
Deploy to multiple platforms!
Review the link for Comparison between Corona, Phonegap, Titanium
I think you can's say what is the best. Every one has some pro and contra.
I tested some tools.
PhoneGap: It's very powerfull and have a large community. PhoneGap is supported by Adobe.
But the maximum size of local database is limited.
I tested Adobe Air too. For this the user needs the Air runtime. If you use the Adobe flashbuilder you have a nice IDE.
etc.etc.....
I'm courious about the other meanings and tips.
Kind Regards
#EvZ, its not the matter of finding best among these cross platform development tools. Each tool has its own strengths to built apps in multiple platforms.
If you want to use these tools you can search in Google and decide which one is better for your application requirement. no one can directly estimate which is good. Basing on your coding skills you can use any one.
For Example: Phonegap is best suitable for the designers. Because it is similar to JavaScript and HTML like that
I found this http://www.canappi.com/ (I have not tried this). It is looking easy to learn.
rest alternatives you can find here.
I suggest PhoneGap :
please see http://phonegap.com/
Simple! Easy to work with and Free!!

PhoneGap or Native app development [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
As we are still in the design stage we have no code in place yet for our mobile app. I then stumbled on the PhoneGap tool which has left us thinking. We are both from a Java background so that is why developing using ADT/Java looked like the only option. Is the knowledge ramp up for PhoneGap steep or do you think it would be worth going with it from the start seeing as we have no existing code done yet.
We had intended to use GAE/Big table for our back end persistence. Is this still possible if you use PhoneGap for the front end?
Also, can I assume it's possible to use Selenium to automate functional tests with phoneGap?
Our UI will just consist of Buttons, a sprinkling of static images and Text. Am I correct in saying the the performance drawbacks of PhoneGap should probably not be an issue in this case?
I did develop both for both platform but they are completely apps and below notes are based on my experiences, I am writing for PhoneGap (I think) and you can assume android is the opposite side.
Cross platform, right now it is supporting all major phones (Android, IOS, WP) I am not sure it is case for you as you only tagged for Android.
HTML5, JS, CSS these are my area as you are Java based developers so it is up to you.
Not native so will be slower than native.
Cross browser compatibility. I think this does not need explanation especially for desktop browsers it a pain the mobiles are more easier but it is still a problem.
To answer your questions,
Yes you can use GAE/Big table for backend, with AJAX as PhoneGap uses file:// protocol it is supporting cross URL request.
I personally don t use PhoneGap, if the app is a game and have lots of animation going on. But in your case it is a application for listing data and responsive web might make your life easier than native app to support all screen size.
I have no idea about Selenium testing so I keep my silence for that.
And shorter answer to your for me YES you can use and should.
Hope this helps.
Lets get going to answer your bunch of questions ?
Would I prefer you to use PhoneGap ?
Definitely Yes, The learning curve is not steep too , All you have to know is basic HTML,CSS and Javascript. Since you have also mentioned the app is simple,It would be good to use PhoneGap. Everybody know that PhoneGap sucks at Performance but since your app seems simple it wont be a problem.
Why did I recommend ?
Write once, deploy across lot of mobile platforms (If you want to support more devices)
Can Selenium Tests be run ?
Yes, You can,its just a web app. :)
Go for it, Give it a try.
If you want to support only Android or iOS or WP7 then I would prefer native development over PhoneGap because Performance matters.
In your case, you can choose between those two. There will be no serious drawbacks.
In many cases, particularly business applications which are connected to web services, choosing between Phonegap and native app is a matter of personal choice. I've met some people who prefer Phonegap and other people who avoid Phonegap, Appcelerator, or other wrapper frameworks and prefer native code.
Phonegap is easy to learn and if you need some functinalities beyond that provided by Phonegap, you can create a plugin for your app. That said, you still need to write native code for the plugin if you need to implement functionalities not provided by Phonegap.

iPhone and Android programming for mobile games? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I want to write simple games for mobiles, something like a good Tetris program. I want it to work on Android and iPhone phones.
My current knowledge of programming is fairly good in web development such as PHP, MySQL, HTML, CSS, JavaScript and C/C++, and Java, all intermediate level, and basic OpenFL programming.
I have the following questions:
If I code in XCode can I port/deploy it on Android phones?
What are the languages/packages I need to learn?
Can I get some helpful tutorial links to the same for a new bee?
Most of the people I know that port between iphone and android using the native tools use C++ / OpenGL ES / OpenAL and small amounts of objective-c / android NDK to handle the OS specific stuff. You want to reduce the OS specific code as much as possible as that is the code you have to rewrite for new platforms.
This can be a lot to handle if you have never done it before.
If it's your first time doing game development you may like to go down another path like Unity3d or Corona SDK. Since you want to do 2d game development Corona may be a better fit.
Both Corona and Unity3d have great forums that will help you out.
If you want to learn Objective-C, then I would suggest the Cocos2D engine for 2d game development. Again they have a great forum for asking questions.
For iPhone you will have to know Objective-C
For Android you have more choices Java should be the first one on the list.
And the of cause you could use the android-scripting framework.
Android Scripting
A Pretty interesting Project is Titanium by appcelerator.
Titanium
You can use Javascript, HTML5 and CSS3 so it might work out pretty well for you.
They furthermore have a pretty big community.
Hope this helps!
Depends what you mean by port. In general it's not a straightforward task. Both Android and iOS have OS-specific APIs which you will use. Additionally, the languages are also different (see #2). The language and platform differences will likely cause you to write your application somewhat differently.
For Android: Java. For iOS: Objective-C. As far as gaming goes, OpenGL will serve you well. You could consider using a 2D graphics library that will abstract that a bit too like libGDX, AndEngine, or Cocos2D. If you do though, be aware that if that library isn't on both platforms, you'll have an even harder time porting. Again, for each platform you'll want to look at their platform docs too. Here for Android, and on Apple's developer site for iOS.
As far as Android goes, look at the source code for Replica Island. Can't say I can recommend you a great iPhone game dev tutorial unfortunately.
The native SDK for iOS uses Objective-C, and the native SDK for Android uses Java. Most people develop native apps in those languages directly. Even if they shared the same language, the two system's work so differently under the hood that you wouldn't be able to share the code directly. In both cases however you can use C++ to do most of the graphics programming in OpenGL, so that part at least you could share directly.
There are a number of cross-platform solutions available however, allowing you to deploy both iOS and Android apps from the same codebase. For a 2D puzzle game a pretty ideal solution is Corona SDK.
A major misconception by many game developers is that it's somehow better to develop your game specifically for either iOS or Android from the start. I've been developing mobile games for years and am finding that developing portable games that run perfectly on both Android and iOS takes no longer than writing specifically for one - so long as you use one of the modern platform libraries, like BatteryTech. Porting has been a non-issue for us since we switched.
I want to answer on the second question.
Look at this post to see the Infographics that visualize what language uses every OS. I think it will be quite helpful for you.

Converting iPhone/iPad apps onto Android [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I have started to build my own apps on iPhone and iPad using the iPhone SDK. The next question that is always asked by the client is, "Can we have it on Android?"
So my question to you, 'the internet', is: what are my options?
I don't have the time to learn another language (learning iOS has been enough!), so are there companies who specialize in this, or are there any online services that do a conversion?
Any help on this welcome, just need to know which way to turn...
No, there is no way to convert an existing iOS app to an Android app.
However, there are cross-platform frameworks that allow you to code once and deploy your app in more than one platform. The most popular are based on HTML/CSS/JavaScript and one of them is PhoneGap.
You can also develop for iOS and Android with Adobe technologies such as Adobe AIR (this was forbidden by Apple until recently).
And there are online services (such as Mobile Roadie) that allow you to generate cross-platform apps using a content management system.
That said, I strongly recommend to:
Learn Android and Java development if you want to specialize in mobile development.
Take advantage of the strengths of each platform when working on an iOS/Android project, instead of creating something that uses only what's common to both.
Converting a native application from one mobile platform to the other is not a straight-forward process unless the initial application was built with a framework with cross-platform capabilities from the start.
Your options at this point are learn the other platform and develop it yourself, or contract with another development company which specializes in the platform you need to target.
Due to the massive differences between the 2 platforms, you are looking at a complete rewrite of your application. You either do it yourself or pay someone else to do it. I don't see any shortcuts you can take.
You may be interested in reading my book, HTML5 for iOS and Android, which enables you to take web apps created in HTML, JavaScript & CSS, and turn them into standalone apps that you can upload to the app stores (for free or to sell). See http://html5formobile.com - the wrappers to do this for the iOS and Android SDKs are freely available on the website, and you don't need any knowledge of either programming language if you follow the instructions in the book.
You can try the following https://bitbucket.org/zabirauf/icona.
Its open source iOS to Android Application Conversion Tool.
Even if there was a way to easily port an Objective-C application to Java, I wouldn't highly encourage it. iPhone users and Android users are two different families of users. The typical iPhone interface just wouldn't sit well with Android users who aren't familiar with how the iPhone works. Yes, I understand that the UIs of both iPhone and Android seem pretty trivial to learn to most people, but when you break a novice's comfort zone, it puts your applications (or websites) on a higher learning curve.
You should take the time to learn Android's language and UI and develop your application in a fashion that is consistent with how applications on Android work. As said in other answers, if your taught yourself Objective-C, you should find that Java will come pretty easily to you. In addition, in never hurts to know more than one programming language.
You can't just convert iOS apps into Android. iOS is Objective-C and Android is Java.
I highly doubt there are 'converters' on the internet, even if there are that's not the way you should program an app because every SDK has his own special capabilities and you should use them for maximum user-experience.
I'm sure there are some companies who specialize in porting apps from iOS to Android. Look it up on Google I'd say..
If you want an easy place to look for android development you can try appMaker which I hear is a GUI based Android development tool or I believe Google has released its own GUI based android application development tool. If you are not a java programmer than you might be better off with the gui. Otherwise I would say android is not too different from traditional java. As a java programmer who went from Android to iOS, I will tell you Android is a walk in the park compared to learning iOS. Two completely different beasts in my opinion.
Selecting a mobile development environment which will enable you write once and deploy/distribute it on many devices would be a better solution in the future. If your application is HTML-based, go with HTML5/CSS alternative (ex: PhoneGap, ). If you prefer native, then chances are you may want to learn Lua, a scripting language (ex: Gideros Studio) or C++ (ex: Mosync).
Other than that, the application you created on iOS with Objective-C is very, very hard to port to Android and other devices.

Categories

Resources