20 votes

How does one get started programming an Android app?

It's been a long time since I've done any "serious" programming, but I have long held a desire to recreate an app that's been out of development for a decade, and I reckon I'd do fine if given the right direction.

My "qualifications". I've done "school project" level stuff in *many* different languages (VB6, Python, Java, C++, C#, PHP, Lisp, Prolog, R, to name a few) so I know my language-agnostic basics, and I've made a career out of quickly learning new tools and platforms and maintaining other people's work. The problem is all that experience is either "give a plain text file the right file extension" or building the project via a proprietary IDE, so getting started from scratch I'm totally lost. What IDE? What language? How does the .apk happen?

Googling for this gives me either "no code" platforms, which is zero of the fun and basically what I do at work, or documentation that has skipped the first ten steps because it assumes you know the prerequisites already. Help?

7 comments

  1. [4]
    phoenixrises
    (edited )
    Link
    I'm literally an Android developer for my main job so I think I'm qualified to answer this question! Android Studio is what you're looking for, and if you need things to Google, I'd start with...

    I'm literally an Android developer for my main job so I think I'm qualified to answer this question! Android Studio is what you're looking for, and if you need things to Google, I'd start with Kotlin and Jetpack Compose for UI work. Kotlin is basically Java++ so it helps that you're familiar with Java at least! Android Studio handles all the .apk stuff!

    Common patterns/architecture stuff you might want to research is MVVM or MVP (a bit outdated nowadays, I've been privy to Slack's Circuit architecture library recently for side projects). XML sometimes is used for views and stuff like that, but is slowly getting taken over by Jetpack Compose.

    Recently Kotlin has been getting into the buildscript stuff too so you don't even need to learn Gradle and Groovy anymore too!

    @talklittle is the developer of Reddit is Fun and the Three Cheers app too, he'll probably have things to say too but feel free to message me as well!

    20 votes
    1. [2]
      ButteredToast
      Link Parent
      With the caveat that I’m an iOS developer first and Android dev second, I’ll second Kotlin+Compose as a starting point. Aside from some corner cases which will probably be ironed out eventually,...

      With the caveat that I’m an iOS developer first and Android dev second, I’ll second Kotlin+Compose as a starting point. Aside from some corner cases which will probably be ironed out eventually, I’ve personally found Compose to be much more pleasant and usable than the preceding Android Framework.

      It’s almost the opposite of the situation on iOS, where the newfangled framework (SwiftUI) is maybe best avoided for non-simplistic projects in favor of the older but vastly more flexible and capable UIKit.

      11 votes
      1. tanglisha
        Link Parent
        In not a mobile dev at all, but I agree that Kotlin is great. They took everything I hated about Java and chucked it, keeping the good parts.

        In not a mobile dev at all, but I agree that Kotlin is great. They took everything I hated about Java and chucked it, keeping the good parts.

        3 votes
    2. kollkana
      Link Parent
      I'm glad there seems to be consensus on Kotlin and Jetpack Compose, and that course elgis linked below should keep me occupied at least for the rest of my parental leave. Thank you!

      I'm glad there seems to be consensus on Kotlin and Jetpack Compose, and that course elgis linked below should keep me occupied at least for the rest of my parental leave. Thank you!

      2 votes
  2. [3]
    elgis
    Link
    https://developer.android.com/courses/android-basics-compose/course The course on the Android website could be a good place to start. The first unit covers Kotlin and Android Studio.

    https://developer.android.com/courses/android-basics-compose/course

    The course on the Android website could be a good place to start. The first unit covers Kotlin and Android Studio.

    11 votes
    1. [2]
      kollkana
      Link Parent
      Wow, this looks perfect, thank you! Some real basics to skim over, but that'll give me the syntax. Why on earth did this never show up on my searches..?

      Wow, this looks perfect, thank you! Some real basics to skim over, but that'll give me the syntax. Why on earth did this never show up on my searches..?

      5 votes
      1. elgis
        Link Parent
        Glad to be of help. I had that link bookmarked, but I remember the Android website being a bit disorganized and unintuitive to navigate.

        Glad to be of help. I had that link bookmarked, but I remember the Android website being a bit disorganized and unintuitive to navigate.

        4 votes