-
Notifications
You must be signed in to change notification settings - Fork 48
Home
Safari Books Online, https://www.safaribooksonline.com/
This document is for notes that come up during class. It’s also an easy way to share code and other materials.
Relevant GitHub repositories:
Setup: The officially supported IDE is Android Studio, downloaded from https://developer.android.com/studio/index.html
Main site for everything related to Android is https://developer.android.com/index.html . Start here for everything :)
The Android dashboards are updated (roughly) once a month, located at https://developer.android.com/about/dashboards/index.html . They show devices accesses to the Google Playstore, broken down by Android version.
APK → Android package; deployment module for an app
AVD → Android Virtual Device, or what we call an emulator.
The original virtual machine for Android was called Dalvik (or DVM). Later they implemented ART (Android Runtime).
DEX → Dalvik Executable, the format used by apks.
"Sun" Java Editions
-
Standard Edition
-
Enterprise Edition (now hosted at Eclipse), reference implementation now officially named "Jakarta EE"
-
Micro Edition, competitor to Android. Android was based on the open source Apache Harmony project.
Mobile is a field with two winners.
Apple makes money from hardware
-
They use software to sell the premium hardware
-
Their integration between hardware and software is excellent
Google makes money from services
-
They want their services everywhere
-
This means low-cost devices are helpful
Both companies have achieved their goals
-
Apple dominates the high end market (where the money is)
-
Google is everywhere
Market share statistics are correlated to income levels.
Toolkits for generating Android and iOS apps
-
Apache Cordova (used to be PhoneGap)
-
Ionic
-
Titanium (Appcelerator)
-
Flutter
-
React Native
-
Xamarin
-
Kotlin Native
Kotlin is a programming language based on Java that runs on the JVM
-
At Google I/O in 2016 they announced it was an officially supported language for Android
-
Created and managed by JetBrains (that makes both IntelliJ IDEA and the Android Studio IDE)
-
Statically typed, null safe, small, optimized for small environments
-
Home page: http://kotlinlang.org/
-
"Kotlin for Android Developers" by Antonio Leiva (LeanPub)
-
"Kotlin in Action" (Manning): https://www.safaribooksonline.com/library/view/kotlin-in-action/9781617293290/
i18n → internationalization (because there are 18 letters between the i and n in the word internationalization)
-
Uses "resource bundles" for individual "locales" — Locale → country/language/variant
-
Also for error messages
HAXM → Hardware Accelerated Execution Manager
-
uses virtualization to speed up the emulator
gravity → moves the contents of a widget
layout_gravity → moves the widget relative to its parent container
Retrofit → API for accessing RESTful web servicesm located at http://square.github.io/retrofit/
-
Can be used both synchronously and async
-
Based on a networking library called OkHttp
Dagger 2 → dependency injection (similar to Spring framework), located at http://square.github.io/dagger/
Testing:
-
Head First Android Development, 2nd edition, Dawn and Dave Griffiths, O’Reilly Media https://www.safaribooksonline.com/library/view/head-first-android/9781491974049/
-
Busy Coder’s Guide to Android Development, Mark Murphy https://commonsware.com/Android/ (Subscription model; updated every four to six weeks)
-
Gradle Recipes for Android, me, O’Reilly Media http://shop.oreilly.com/product/0636920032656.do (Also available for free registration at http://gradle.org/books)
-
Head First Kotlin, Dawn and Dave Griffiths, O’Reilly Media (under development) https://www.safaribooksonline.com/library/view/head-first-kotlin/9781491996683/
-
Kotlin in Action, Jeremov and Isakova, Manning
-
Kotlin for Android, Leiva, LeanPub
-
Learning Android (video) https://www.safaribooksonline.com/library/view/learning-android/9781491935514/
-
Practical Android (video) https://www.safaribooksonline.com/library/view/practical-android/9781491935521/
-
Gradle for Android (video) https://www.safaribooksonline.com/library/view/gradle-for-android/9781491941102/
-
Modern Java Recipes (book) https://www.safaribooksonline.com/library/view/modern-java-recipes/9781491973165/
-
Gradle Recipes for Android (book) https://www.safaribooksonline.com/library/view/gradle-recipes-for/9781491947272/
-
Making Java Groovy (book) https://www.safaribooksonline.com/library/view/making-java-groovy/9781935182948/