9

As the title of this question suggests, I am looking forward to develop app(s) on Android platform without using Java at all. It doesn't mean I have some kind of vendetta against this beautiful language or I don't know how to develop apps in Java. But I am considering that my application(s) can be developed by only using XML, JavaScript and Ajax.

  • So do I still have to rely on Java?
  • Will there be any disadvantage(s) of not using Java?
  • Will I still be able to extend my app(s) in the future?
  • Am I asking a really stupid question here?

Kindly help me out.

Edit:

The app I am working on (still on whiteboard, need expert opinion on this approach) will simply fetch news from different news sources and will display to its user.

FaizanHussainRabbani
  • 2,255
  • 2
  • 15
  • 22
  • "Your questions should be reasonably scoped..." ([help/dont-ask]). See http://meta.programmers.stackexchange.com/questions/6483/why-was-my-question-closed-or-down-voted/6490#6490 – gnat Dec 24 '14 at 06:45
  • @gnat Sure I can describe the scope of the app I am trying to develop? – FaizanHussainRabbani Dec 24 '14 at 06:47
  • 1
    @gnat I think this link might help you understand my question.http://meta.stackoverflow.com/questions/254570/choosing-between-stack-overflow-and-programmers-stack-exchange – FaizanHussainRabbani Dec 24 '14 at 07:01
  • 3
    i find the question direct and clear – Ali Dec 24 '14 at 07:15
  • 2
    The question is clear, but it does not show any research effort. A simple google search for "android without java" shows numerous possibilities. – GrandmasterB Dec 24 '14 at 07:29
  • @GrandmasterB I didn't ask "how to develop android apps without Java" I already know that, what I asked is mentioned in the question. – FaizanHussainRabbani Dec 24 '14 at 07:42
  • 1
    the fact that question is a bad fit for SO doesn't magically make it good for Programmers. Did you check [Programmers meta guidance](http://meta.programmers.stackexchange.com/questions/6483/why-was-my-question-closed-or-down-voted/6490#6490) referred in prior comment? – gnat Dec 24 '14 at 07:59
  • @gnat I mentioned it before that it is on "whiteboard". I can not share any code at this time, I am looking for an expert opinion. If you think it is too broad, kindly leave it as it is. If you can not help then do not try make it worse either? – FaizanHussainRabbani Dec 24 '14 at 08:09
  • 1
    @FaizanRabbani Stack Exchange in general and SO/Programmers specifically are not a good fit for opinions. Ideally, questions will be objective with answers that are either correct or not. Asking for thoughts, opinion polls, etc. are a poor fit for this format. –  Dec 24 '14 at 16:57

2 Answers2

3

If you think about avoiding Java, but not Dalvik altogether, you could use Kotlin.

http://kotlinlang.org

Very neat language by JetBrains; thus it integrates well with Android Studio (or IntelliJ Idea). Much less verbose than Java, and introduces some functional programming concepts. Kind of like Scala, only simplier. It can coexist with Java in an Android project, or you can move everything to Kotlin. The IDE plugin allows for converting Java code into Kotlin automatically, so it's easy and facilitates learning it.

See: http://blog.gouline.net/2014/08/31/kotlin-the-swift-of-android/

It's a niche language and not 100% mature yet. I wouldn't advocate using it in large scale commercial projects, but for something light-weight or a hobby app; go for it. As a learning experience, and for the taste of a slightly different paradigm.

What would you be missing on?

  • Kotlin skills are not sought after by employers (as of now at least), so learning it doesn't add significant experience to your CV. Although a project done in Kotlin could still make for an interesting entry on a resume, indicating an enthusiastic programmer;

  • Superb refactoring functionality provided by Android Studio for Java is very limited when coding in Kotlin.

It has its counterpart born in the Eclipse world: http://eclipse.org/xtend/ - which seems to be somewhat similar. I've never tried that one though.

Konrad Morawski
  • 9,721
  • 4
  • 37
  • 58
  • The app that I will develop might not be used on large scale, but its core idea (Non-Java development) might be used in other apps. So there will be issues going commercial on this platform? – FaizanHussainRabbani Dec 24 '14 at 09:27
  • 2
    Noone can tell you 100% :) Out of my experience, it works all right, but I encountered some class loader problem trying to run a unit test that used _both_ Kotlin and Realm.io. Realm works as an annotation processor, so there must have been some nasty interference between both. This sort of stuff. Regular unit tests were fine. In other words, it seems to work fine for the standard technology stack, but if you need some specific framework or a lib, better make sure that it plays nicely with Kotlin. I would prototype the app first. What is one man's edge case, could be a dealbreaker for another. – Konrad Morawski Dec 24 '14 at 09:52
  • What if I want to develop from the scratch? – FaizanHussainRabbani Dec 24 '14 at 11:39
  • @FaizanRabbani from the scratch in what sense? – Konrad Morawski Dec 24 '14 at 11:46
  • Not using any 3rd party API/Framework. – FaizanHussainRabbani Dec 24 '14 at 11:48
  • 2
    @FaizanRabbani well, Kotlin is not supported by Android out of the box, but it interops with Java, so it is a native app after all - while that's not the case of Ionic or PhoneGap. If you don't even like the fact that you need Kotlin compiler & plugin for this to work, then well, the choice is pretty narrow, and it's only Java for SDK. You can use C++, too, but that's for NDK and not for typical software development. As the official docs put it: `"In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++"` - http://bit.ly/1fSbhs8 – Konrad Morawski Dec 24 '14 at 11:56
  • Okay, I will consider it. – FaizanHussainRabbani Dec 24 '14 at 12:00
2

Checkout Ionic and Telerik appBuilder.

If you are more getting to the bits and pieces and doing all on your own check Cordova which is the base of the two mentioned above.

So do I still have to rely on Java?

No for most of the cases.

Will there be any disadvantage(s) of not using Java?

  • you are not doing native app
  • you are limited by plugins available by the framework you are using
  • and a small performance issue

Will I still be able to extend my app(s) in the future?

Yes but again depend on which framework you are doing it and what it allows.

Am I asking a really stupid question here?

Not at all.

bignose
  • 191
  • 9
Ali
  • 1,222
  • 2
  • 13
  • 27