Changing from Java to another language for Android app development. Is it a wise move, and to which language? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 6

Changing from Java to another language for Android app development. Is it a wise move, and to which language?

I asked a question as part of a conversation in a thread earlier today, and I see in my notifications that I got some responses. I pushed on the notification to read the reply, and 'POOF'! The whole thread is gone! Those answers were really important to me, so I was wondering if there's any way I can get a copy of it. I will admit that I did see that the question was marked for deletion, but in my defense, I had a crazy busy day today, and didn't get around to reading the responses before the mark was hit. 😕 The topic was about migrating from Java to another language, and which one to choose, with a specific app in mind. David Carroll and Jamie💐 were involved in the convo as well. So if anyone can help I'd greatly appreciate!

10th Sep 2019, 4:30 AM
Shtisim Lukshen
Shtisim Lukshen - avatar
10 Answers
+ 12
[Part 1 of 2] I'm recapping the main talking points from another question that was removed after being mfd. 1. C# can be used to build mobile apps on Android and iOS using the Xamarin Framework. It should be noted that while the language can be used for building an Android and iOS app, building an app for Android will not work for iOS. You will still need to learn the respective platform APIs as they are very different. 2. Kotlin is an official language for building Android apps, which I believe is a move by Google to eventually emphasize Kotlin over Java, more so for potential legal issues and bad blood with Oracle. But, I'm just gossiping now. ;) 3. Kotlin's support to compile to native code makes it possible to build iOS apps with this language as well. However, to be honest, I'm not as familiar with this and you will want to research this more on your own. 4. Neither Android nor iOS will supports running the JVM without applying root or jail break on the respective devices. This came as a surprise to others in that last post as they thought Android ran on JVM - which is not the case. Rather, since Android 5.0, the Android Runtime (ART) has been used for the application runtime environment. Prior to this, the Dalvik VM was used for interpreting short segments of the Dalvik bytecode at a time into native code, similar to trace-based JIT compilation in the JVM. ART implements an Ahead-of-Time compilation of bytecode into native code at the time of installation for faster execution and overall greater performance. (continued...)
10th Sep 2019, 11:04 PM
David Carroll
David Carroll - avatar
+ 11
[Part 2 of 2] 5. Based on your background with Java, I believe it will be smoother to transition from Java to C# as both languages share much similarity in the simpler syntax constructs. You can then ease into learning about the more advanced and improved syntactic constructs supported in C# that are either missing from Java or available as a very limited or clunky variant at best. 6. The transition from C# to Kotlin will feel much more natural once you've become familiar with all that C# has to offer. These two languages are so similar in language capabilities that you just need to learn the syntactic differences. 7. Should you decide to work with native support languages for Android and/or iOS in the future, you will already be familiar with the respective platform API's if you start with Xamarin. The same could be said about ReactNative or Flutter as well. NOTE: This is NOT the case if you were to use a hybrid approach with something like Cordova. This approach abstracts the platform APIs as well so that you build one application that can run on all platform devices. However, there are quite a bit of compromises with this approach as well. ------- I'm certain I've not only recapped what was briefly mentioned in the other post, but, I've gone much deeper in this response. Hopefully, this gives you the information you were looking for to make a decision.
10th Sep 2019, 11:18 PM
David Carroll
David Carroll - avatar
+ 8
Shtisim Lukshen I can't recall... was that your thread or someone else's? You might be able to request info@sololearn.com to send you a breakdown of that post. I completely forgot that was marked for deletion.
10th Sep 2019, 6:31 AM
David Carroll
David Carroll - avatar
+ 6
Shtisim Lukshen Ah... yes... I recall most of the responses to that follow up. Did you see any of the responses?
10th Sep 2019, 2:42 PM
David Carroll
David Carroll - avatar
+ 3
David Carroll I really feel the urge to repay you for your time and patience in answering my questions, and addressing my concerns. Somehow I'm under the impression that you take great pleasure in watching beginners grow and thrive in this field, so I hope to be another such source of pleasure for you! 😄
11th Sep 2019, 12:45 AM
Shtisim Lukshen
Shtisim Lukshen - avatar
+ 2
David Carroll the thread was not mine. The original question of the thread was if Java is the best language. At some point I asked if it would be recommended I drop Java which I had been pursuing for some time, in favor of another language. I have a specific app in mind, and was thinking of developing it for Android. Originally, I was determined to finish Java despite seeing an increasing number of experts say that there are far better apps for Android development. I did however recently place it on a back burner for a few months due to a larger project I'd undertaken, and now that I'm about to move back my coding ambitions to the forefront, I'm opening myself to suggestions as to what would be the best language to learn, and if I should change from Java to something else. Note: Though my intent was on an Android app, I did want to eventually have it available to iOS in the long-term. (If that has any weight on the answer.)
10th Sep 2019, 9:43 AM
Shtisim Lukshen
Shtisim Lukshen - avatar
+ 2
I think you should learn C#
11th Sep 2019, 11:54 AM
Magnesium
Magnesium - avatar
+ 1
David Carroll all I saw was that C# can also be used to for Android (through some kind of extension...) And the rest is faded away. My question is, I'm not only looking for what works, but for what would be most efficient. I was also wondering how much I should take into consideration the fact that at some point I'll probably want to have this app run on iOS too. Thanks a million for your time and effort! P.S. Paging Jamie💐 if they remember anything. Am I getting annoying here? 😕
10th Sep 2019, 4:05 PM
Shtisim Lukshen
Shtisim Lukshen - avatar
+ 1
C# it is!
11th Sep 2019, 12:41 AM
Shtisim Lukshen
Shtisim Lukshen - avatar
+ 1
To all others reading this thread, it's not locked, and I'd still love to hear others' experiences! Please chime in if you've been through a similar situation.
11th Sep 2019, 12:53 AM
Shtisim Lukshen
Shtisim Lukshen - avatar