How can one develop iPhone apps in Java?

JavaIphoneObjective C

Java Problem Overview


I was wondering if is it possible to develop iPhone applications using Java plus XMLV, which claims to cross-compile Java-based Android applications to native iPhone applications.

Is XMLV a viable way to develop iPhone applications using Java?

Here are a few Java code examples used to build and application in an iPhone:

http://www.xmlvm.org/iphone/#

Java Solutions


Solution 1 - Java

I think we will have to wait a couple of years more to see more progress. However, there are now more frameworks and tools available:

Here a list of 5 options:

Solution 2 - Java

If you've completed your other projects, why not take the time to learn Objective-C? There is a ton of material out on the web to help you get started. Honestly, it won't be that hard and learning to do some memory management will be a great learning exercise. Have you programmed in C before?

Most cross compilers won't do a great job in converting your code, and debugging your project may become much more difficult if you develop them this way.

Solution 3 - Java

I think your teacher sent you down the wrong path.

This is a classic example of trying to put a square peg into a round hole. The best way to develop for the iPhone is with the iPhone SDK and objective C. The best way to develop for Andriod is Java and the Android SDK. The best way to develop for WinMobile is C#/VB and the .Net Framework.

As you can see each has their own "best" SDK. Since you are only learning Java I would second the suggestion to play around with Java and Android.

Solution 4 - Java

There is anew tool called Codename one: One SDK based on JAVA to code in WP8, Android, iOS with all extensive features

Features:

  1. Full Android environment with super fast android simulator
  2. An iPhone/iPad simulator with easy to take iPhone apps to large screen iPad in minutes.
  3. Full support for standard java debugging, profiling for apps on any platform.
  4. Easy themeing / styling – Only a click away

More at Develop Android, iOS iPhone, WP8 apps using Java

Solution 5 - Java

take a look at codenameone.com project, it's a cross platform mobile framework where the ui part is a fork of LWUIT. This project leverage xmlvm to translates the java bytes code to Objective C

Solution 6 - Java

You can also take a look at RoboVM.

It translates Java byte-code into native ARM or x86 code which can run directly on the processor without any VM or interpreter needed. Most of the Obj-C UI elements are already bridged into Java and follows the usual Java design patterns.

Edit Robo VM recently announced that it would be shutting down the service - Source

Solution 7 - Java

You need to know at least basics of Objective-C to develop for iPhone. However, it is possible to use C++ classes.

As far as I know Adobe is working on building Flex/Flash applications for iPhone. Read more here: http://theflashblog.com/?p=1513

Solution 8 - Java

You can't.

Note however that Monotouch allows you to develop in C# instead of Objective-C. http://monotouch.net/

Solution 9 - Java

If you plan on integrating app functionality with a website, I'd highly recommend the GWT + PhoneGap model:

http://blog.daniel-kurka.de/2012/02/mgwt-and-phonegap-talk-at-webmontag-in.html http://turbomanage.wordpress.com/2010/09/24/gwt-phonegap-native-mobile-apps-quickly/

Here's my two cents from my own experience: We use the same Java POJOs for our Hibernate database, our REST API, our website, and our iPhone app. The workflow is simple and beautiful:

Database ---1---> REST API ---2---> iPhone App / Website

  • 1: Hibernate
  • 2: GSON Serialization and GWT JSON Deserialization

There is another benefit to this approach as well - any Java code that can be compiled with GWT and any JavaScript library become available for use in your iPhone app.

Solution 10 - Java

I'm answering this question 2 years down the line and I must stress that I did have pretty much the same problem as you did. However I'm so happy that Android has evolved into what it is today.

Having said that, I do regret that I did not learn C/C++ while I could have and I don't want to blame my teachers for it cos where was my brain when the time was right?

I'm sunk in Java today and I'm glad that I did not make the mistake of learning too many languages and being less productive... However I did learn HTML5 which really made things a lot easier, maybe someday, I might get motivated to learn C/C++ . Or if I get an Apple mac at a real throw-away price, I might learn Objective-C :)

Solution 11 - Java

I think Google Open Sources Java To Objective-C Translator will make it possiblöe to develop in Java for iOS https://code.google.com/p/j2objc/

Solution 12 - Java

try to use TotalCross. It is a Java Framework to help devs create iOS and Android apps with only one source code. Different from the others platforms, it doesn't require any knowledge in iOS (Objective-C or Swift) nor Android (SDK or NDK)

there is a maven integration https://gitlab.com/totalcross/TotalCross/wikis/building-with-maven

Solution 13 - Java

http://www.xmlvm.org/android/

Specifically talks about Java based Android apps being ported to the iPhone using non-Apple hardware.

You might also want to check out MonoTouch (C# rather than Java...but the two are very similar).

Solution 14 - Java

You can try iSpectrum ( get it at http://www.flexycore.com ) You'll be able to develop and debug your Java apps in Eclipse. You'll still need a Mac and XCode to launch it on the simulator, or install it on the real device, though. But you won't have to actually use XCode editor. Plus you can use it for free if you're planning to work on an open source project.

Solution 15 - Java

Perhaps you should consider Android applications instead of iPhone applications if you really want to develop in Java for smartphones. Android natively uses Java for it's applications; so perhaps this might be a better option?

As for iPhone, I would recommend you to look into Obj-C or C/C++ depending on the type of applications you want to make. Should be fun to dabble into a new language! :)

Solution 16 - Java

To add to this there's: http://www.oracle.com/technetwork/developer-tools/adf-mobile/overview/index.html

> A Java & HTML5 Based Framework for Developing
> Oracle ADF Mobile enables developers to build and extend enterprise > applications for iOS and Android from a single code base. Based on a > hybrid mobile architecture, ADF Mobile supports access to native > device services, enables offline applications and protects enterprise > investments from future technology shifts.

Solution 17 - Java

Even if the question states Java, most of the answers have digressed. So I thought I would do the same :)

We have been using Adobe AIR for the last 5 years and it is truly cross-platform and provides native-like performance with the same code base (at least 99% of our code is the same). Adobe AIR got some bad press at the beginning during the 'beta' period (slow, no GPU, Flash 'dead' etc.) But now, it's amazing what you can do with it. Not to mention the wealth of open source libs out there.

With the same code base you can push your app onto:

  • iOS
  • Android (x86 and ARM)
  • Flash (still VERY useful)
  • ChromeBook
  • PC (as native with installer)
  • Mac (as native with installer)

Why bother with Java or Objective-C ?

The only common platform not covered is Window Phone. But that's coming soon too.

Solution 18 - Java

Build a hybrid app. Anyways Java is not enough for a software engineer , you need to learn JS,HTML5,CSS as well for becoming a full stack mobile/app developer. Build the complete backend using Java & frontend using Cordova/Phonegap.

I'm assuming you dont need the last drop of juice from the hardware even hybind app should suffice your needs.

Build a responsive webapp using Bootstrap 4 + React JS. Use https://github.com/ipselon/structor to quickly build up the frontend. Now the web app becomes an app in the browser.

You could also take the same app and build it using cordova to publish a app on ios/android platform.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBrendan LesniakView Question on Stackoverflow
Solution 1 - JavaDalorzoView Answer on Stackoverflow
Solution 2 - JavaAmir AfghaniView Answer on Stackoverflow
Solution 3 - JavadeanvmcView Answer on Stackoverflow
Solution 4 - JavaTaranfxView Answer on Stackoverflow
Solution 5 - JavaChenView Answer on Stackoverflow
Solution 6 - JavaA Null PointerView Answer on Stackoverflow
Solution 7 - JavaJacekView Answer on Stackoverflow
Solution 8 - JavaThorbjørn Ravn AndersenView Answer on Stackoverflow
Solution 9 - JavaNaijabaView Answer on Stackoverflow
Solution 10 - JavatechnoSeshView Answer on Stackoverflow
Solution 11 - Javaqwertz1123View Answer on Stackoverflow
Solution 12 - JavaBruno MunizView Answer on Stackoverflow
Solution 13 - JavaJustin NiessnerView Answer on Stackoverflow
Solution 14 - JavaKrustyView Answer on Stackoverflow
Solution 15 - JavaCharlesView Answer on Stackoverflow
Solution 16 - JavaVrashabh IrdeView Answer on Stackoverflow
Solution 17 - JavaramouzView Answer on Stackoverflow
Solution 18 - JavaRohitdevView Answer on Stackoverflow