This shows you the differences between two versions of the page.
smd:utils:new-project-tutorial [2020/02/28 17:20] adriana.draghici [Create your first project] |
smd:utils:new-project-tutorial [2021/03/10 19:39] (current) adriana.draghici |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Create your first project ====== | ====== Create your first project ====== | ||
- | <note important>The content of this page is adapted from [[https://ocw.cs.pub.ro/courses/fss/android-first-project|Create your first project]] page created for Fitbit Summer School 2019 by on of the SMD's teaching assistants. </note> | + | <note important>The content of this page is adapted from [[https://ocw.cs.pub.ro/courses/fss/android-first-project|Create your first project]] page created for Fitbit Summer School 2019 by some of the SMD's teaching assistants. </note> |
Let's create a basic app that displays a message. | Let's create a basic app that displays a message. | ||
Line 19: | Line 19: | ||
* During the labs we will use **Java** | * During the labs we will use **Java** | ||
* We encourage you to give Kotlin a try, but you have to find learning resources by yourself since the labs don't focus on teaching a new language but on presenting the environment and APIs. | * We encourage you to give Kotlin a try, but you have to find learning resources by yourself since the labs don't focus on teaching a new language but on presenting the environment and APIs. | ||
- | * **Kotlin** is a new OOP language, 100% interoperable with Java with a less verbose syntax, null-safety, streams and concepts added in later versions of Java (Android uses Java 8, even though the most recently release one is 12). | + | * **Kotlin** is a new OOP language, 100% interoperable with Java with a less verbose syntax, null-safety, streams and concepts added in later versions of Java (Android uses Java 8 features, even though the most recently release one is 15). |
* you can read more about it [[https://developer.android.com/kotlin/faq| here]]. You can also try it in a [[https://try.kotlinlang.org/#/Examples/Hello,%20world!/Simplest%20version/Simplest%20version.kt|web console with examples]] or on [[https://play.kotlinlang.org/]] | * you can read more about it [[https://developer.android.com/kotlin/faq| here]]. You can also try it in a [[https://try.kotlinlang.org/#/Examples/Hello,%20world!/Simplest%20version/Simplest%20version.kt|web console with examples]] or on [[https://play.kotlinlang.org/]] | ||
//What **API version**?// | //What **API version**?// | ||
- | * We recommend using a **version >= [[https://developer.android.com/about/versions/marshmallow/android-6.0|M]] (API level 23)** | + | * We recommend using a **version >= [[https://developer.android.com/about/versions/oreo/android-8.0|O]] (API level 27)** |
- | * Bluetooth low energy support was added in API level 18, but its functionality was highly expanded and improved in the following versions | + | * There is a tradeoff between using functionalities from newer apis vs supporting a larger userbase |
- | * There is also a tradeoff between using functionalities from newer apis vs supporting a larger userbase | + | |
* [[https://source.android.com/setup/start/build-numbers| Build numbers and SDK versions]] | * [[https://source.android.com/setup/start/build-numbers| Build numbers and SDK versions]] | ||
Line 32: | Line 31: | ||
* Do not confuse it to Android Studio's Instant Run feature, which allows you to run your updated code faster, without rebuilding the whole app and creating a new APK (Android apps are bundled into .apk files). | * Do not confuse it to Android Studio's Instant Run feature, which allows you to run your updated code faster, without rebuilding the whole app and creating a new APK (Android apps are bundled into .apk files). | ||
- | //Androidx* artifacts?// | + | //Androidx* artifacts or legacy support libraries?// |
* When installing the Android SDK, you are given a lot of options, basically all the versions. You can install the latest release one and it will allow you to target earlier APIs using its //support libraries// | * When installing the Android SDK, you are given a lot of options, basically all the versions. You can install the latest release one and it will allow you to target earlier APIs using its //support libraries// | ||
* [[https://developer.android.com/jetpack/androidx|androidx]] is a recent replacement for those support libraries | * [[https://developer.android.com/jetpack/androidx|androidx]] is a recent replacement for those support libraries | ||
- | * **You can tick that box** | + | * You should **not use legacy support libraries** for the labs and your project |
===== Project structure ===== | ===== Project structure ===== |