Android

Where should I start?

https://developer.android.com/guide/

https://developer.android.com/training/basics/firstapp/

  • Online tutorials, courses are good but may be obsolete. However Google docs on android are always up to date

 

I need some guidance

https://eu.udacity.com/course/new-android-fundamentals–ud851

  • Best to learn from creators

 

Which IDE should I use for Android mobile app development?

https://developer.android.com/studio/

  • Android Studio – it’s an Intellij IDEA based IDE, coming with all features available on IDEA. Supported by Google
  • Intellij IDEA – it’s an option
  • You could develop Apps for Android on Eclipse or Netbeans, but… just don’t. Those were darker times.

 

Which Android version should I choose for development?

https://developer.android.com/about/dashboards/

  • Basically one that is supported by most devices

 

Should I consider Kotlin?

https://code.tutsplus.com/articles/java-vs-kotlin-should-you-be-using-kotlin-for-android-development–cms-27846

  • Yes, assuming that you are fluent Java programmer, otherwise you may not appreciate Kotlin features

 

Why even bother with Android when I can develop cross-device apps using react native / xamarin?

https://hackernoon.com/react-native-vs-real-native-apps-which-is-better-a8383d6f7ca5

  • I don’t know, ask your lecturer 🙂
  • Avoid PhoneGap – it’s just a wrapper that displays web applications without a top bar
  • Basically developing apps on Android makes sense when:
    • you have a strong Java background
    • you need to address only Android users
    • you are concerned about performance
    • you want to use one of many high quality free libraries available for android
    • you want to use android API / features that are not available otherwise

 

I have a problem.

  • Define your problem
  • Search on Google / StackOverflow
  • If you can’t find answer – redefine your problem

https://techbeacon.com/46-slack-groups-developers

  • If you really can’t find any answers, join and ask on groups listed above, community is helpful and will kindly tell you that you defined your problem in a wrong way.

 

I don’t have any android device to test my app / I don’t want to have an USB constantly attached to my PC.

https://www.bluestacks.com/

https://stackoverflow.com/questions/24598577/connect-bluestacks-to-android-studio

  • You can use BlueStacks as an emulator, it’s convenient

How can I test my applications?

https://developer.android.com/studio/test/espresso-test-recorder

  • You can use JUnit for unit tests.
  • Spock, Mockito or Powermockito are useful tools to develop high quality tests faster. Using Spock makes tests readable, enforcing self-documenting code
  • Espresso allows blackbox UI testing

 

Ok, but how can I really test my applications on all those devices running android?

https://www.softwaretestinghelp.com/5-mobile-testing-challenges-and-solutions/

https://firebase.google.com/docs/test-lab/

  • Firebase allows Cloud based testing on multiple devices

 

How can I deploy an app for UAT testing?

https://www.apptamin.com/blog/google-play-beta-testing/

  • Fortunately Android means Google Play Store. It allows alpha and beta testing – you don’t have to send .apk files via email

 

How can I monetize my application?

https://developer.android.com/distribute/best-practices/earn/

https://www.androidauthority.com/how-to-monetize-android-app-379638/

  • Basically freemium model seems to be the best choice. It depends on your brand and type of app you are trying to develop