An open API service indexing awesome lists of open source software.

https://github.com/antranapp/14daysofbasicandroidkotlin

Learning basic Android development with Kotlin
https://github.com/antranapp/14daysofbasicandroidkotlin

android beginners-tutorial-series kotlin self-learning

Last synced: about 1 month ago
JSON representation

Learning basic Android development with Kotlin

Awesome Lists containing this project

README

          

# 14 days of Basic Android (Kotlin)

Learning Android and Kotlin by making app everything.

Guarantee you will learn new skills after your 14 days quarantine time because of COVID-19.

## Prerequisite:

- Basic programing skill.
- Basic Kotlin knowledge: [https://blog.teamtreehouse.com/absolute-beginners-guide-kotlin](https://blog.teamtreehouse.com/absolute-beginners-guide-kotlin)
- Basic Object-oriented programming knowledge: Inheritance, Polyphomism etc.
- **Patience**! This is actually very important since you can't learn new things fast and keep them stick without practicing a lot.

## Basic:

### [Day 0: Hello World](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/00-HelloWorld)

**What do you learn?**

- Android project Structure.
- Layout the UI widgets in a `ConstraintLayout` using constraint properties.
- Getting text from an `EditText` widget, listen to the click event of an `Button` and display the entered text in a `TextView`.

**How the app looks like?**

**Additional resources**

---
### [Day 1: Layout Explorer](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/01-LayoutExplorer)

**What do you learn?**

- Explore some common layout classes in Android:
- LinearLayout (Vertical)
- LinearLayout (Horizontal)
- RelativeLayout
- ConstraintLayout
- FrameLayout
- TableLayout
- Explore the effects of some common properties of the layout classes:
- layout_height, layout_width: wrap_content, match_parent
- padding, margin
- gravity
- layout_gravity

**How the app looks like?**

**Additional resources**

---
### [Day 2: Widget Explorer](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/02-WidgetExplorer)

**What do you learn?**

- Explore how to use some common widgets in Android:
- TextView
- Button
- Switch
- Checkbox
- RadioButton + RadioGroup
- ProgressBar
- Spinner

**How the app looks like?**

**Additional resources**

---
### [Day 3: CardView + ScrollView](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/03-CardViewLayout)

**What do you learn?**

- Explore `CardView` and `ScrollView` to create a common Android-styled user interface.

**How the app looks like?**

**Additional resources**

---
### [Day 4: Application Lifecycle](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/04-AppLifecycle)

**What do you learn?**

- Explore the lifecycle of an Android Application.

**How the app looks like?**

**Additional resources**

### Day 5: ListView

**What do you learn?**

- Explore the `ListView` widget to display a listing of common items, one of the most popular user interface in mobile apps (thinking of Facebook News Feed, Twitter timeline or Instagram feed).

**How the app looks like?**

**Additional resources**

---
### [Day 6: RecyclerView + RecyclerAdapter](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/06-RecycleViewRecycleAdapter)

**What do you learn?**

- Explore how to use `RecyclerView` and `RecylcerAdapter` to optimise device resources to display a long list.

**How the app looks like?**

**Additional resources**

---
### [Day 7: Data persistence](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/07-DataPersistence)

**What do you learn?**

- Explore how to use `SharedPreferences` to store simple data structures.

**How the app looks like?**

**Additional resources**

---
### [Day 8: Android Database](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/08-Database)

**What do you learn?**

- Explore how to use `SQLite` to store more complex data structures and their relationships.

**How the app looks like?**

**Additional resources**

---
### [Day 9: Networking](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/09-Networking)

**What do you learn?**

- Explore how to use pure Kotlin function to fetch remote data and display it in the app.

**How the app looks like?**

**Additional resources**

---
### [Day 10: Localization](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/10-Localization)

**What do you learn?**

**How the app looks like?**

**Additional resources**

---
### [Day 11: Fragment](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/11-FragmentNavigation)

**What do you learn?**

**How the app looks like?**

- Conditionally showing the `LoginFragment` or the `ProfileFragment` in the `MainActivity`
- Navigation from the ProfileFragment to LogoutFragment which has a logout button.
- Logged-In state is saved in SharedPreferences after logging in
- After logging out, users are redirected to the LoginFragment again.

**Additional resources**

---
### [Day 12: Navigation Drawer and Fragment](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/12-NavigationView)

**What do you learn?**

**How the app looks like?**

**Additional resources**

---
### [Day 13: Pixabay Photo Gallery](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/13-PhotoGallery)

**What do you learn?**

- Navigation Drawer: List, Favorite
- Persistent using `SharedPreferences`
- Infinite scrolling with `RecyclerView` & `RecyclerAdapter`
- Using `Volley` to make network request.

**How the app looks like?**

**Additional resources**

### [Day 14: Kotlin](https://github.com/antranapp/14DaysOfBasicAndroidKotlin/tree/master/14-Kotlin)

## What's next:

- [14 days of Android Architecture](https://github.com/antranapp/14DaysOfAndroidArchitecture)