Mobile Development

  • Is mobile development restricted to phones?

    • Tablets?

    • Do chromebooks count?

    • How about Windows with the Surface?

Platform Agnostic options

How about we just write real apps instead??

Android itself

  • Linux based but unlike any normal Linux distribution

  • Around 10 years old. Released first version in 2008.

  • Current version: 9.0

  • "free" - Technically, the system is Apache/GPL licensed, but non-licensed versions do not enjoy support from Google, including support for Play Store and other vital applications.

  • Much like iOS, the user runs in a sandboxed environment unless they root/jailbreak the device.

Targeting versions

Table 1. Versions

Version

Codename

API

%Installed

Notes

9

Pie

28

10.4%

Current

8.1

Oreo

27

15.4%

8

Oreo

26

12.9%

7.1

Nougat

25

7.8%

7

Nougat

24

11.4%

6

Marshmallow

23

16.9%

Unsupported

Older

G-N

25.2%

Unsupported

Installed numbers as of May 2019

Android Studio

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

  • Based on IntelliJ

  • Runs on all common platforms

  • Can build/run Android software without it

  • A bit heavy:

    • Minimum requirements: 4GB RAM, 2GB disk space (this will be very slow)

    • Recommended: x64 OS, 8GB RAM, 4GB disk space - 16GB RAM is probably much more reasonable

Kotlin

Our TicTacToe App

In class, we designed our TicTacToe app and used layouts and XML to create a grid of buttons for play.

MainActivity.kt
Unresolved directive in 01.adoc - include::code/01_MainActivity.kt[]
activity_main.xml
Unresolved directive in 01.adoc - include::code/01_activity_main.xml[]
strings.xml
Unresolved directive in 01.adoc - include::code/01_strings.xml[]