Skip to content

Commit ccc1ed5

Browse files
authored
Update README.md
1 parent 73abc2c commit ccc1ed5

File tree

1 file changed

+135
-2
lines changed

1 file changed

+135
-2
lines changed

README.md

Lines changed: 135 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,137 @@
1-
<h1><a href="https://codingwithmitch.com/courses/powerful-android-apps-with-jetpack-architecture/">Open-Api Android-App</a></h1>
2-
<p>Work in progress...</p>
1+
<a href='https://codingwithmitch.com/courses/powerful-android-apps-with-jetpack-architecture/' target='_blank'><img class='header-img' src='https://codingwithmitch.s3.amazonaws.com/static/powerful-android-apps-with-jetpack-architecture/images/powerful_android_apps_1.png' /></a>
2+
3+
4+
<h1><a href="https://codingwithmitch.com/courses/powerful-android-apps-with-jetpack-architecture/">Powerful Android Apps with Jetpack Architecture</a></h1>
35
<p>Watch the video course here: <a href="https://codingwithmitch.com/courses/powerful-android-apps-with-jetpack-architecture/">Powerful Android Apps with Jetpack Architecture</a>.</p>
46

7+
<p>In this course you'll learn to build a real application that interacts with the website <a href="https://open-api.xyz" target="_blank">open-api.xyz</a>.</p>
8+
<p>Open-api.xyz is a sandbox website for codingwithmitch members to practice interacting with a Rest API. </p>
9+
<br>
10+
11+
<h4><strong>Prerequisites</strong> (Recommended not required):</h4>
12+
<ol>
13+
<li>
14+
<p><strong><a href="https://codingwithmitch.com/courses/dagger22-android/">Dagger 2</a></strong></p>
15+
</li>
16+
17+
<li>
18+
<p><strong><a href="https://codingwithmitch.com/courses/model-view-intent-mvi-architecture/">MVI Architecture</a></strong></p>
19+
</li>
20+
21+
<li>
22+
<p><strong><a href="https://codingwithmitch.com/courses/android-local-database-cache-rest-api/">Database Caching (Retrofit + Room)</a></strong></p>
23+
</li>
24+
25+
</ol>
26+
<br><br>
27+
28+
<h4><strong>What you'll learn:</strong></h4>
29+
<ul>
30+
<li><strong>Kotlin</strong>:</li>
31+
<li>
32+
<strong>Coroutines</strong>:<br>
33+
<ol>
34+
<li>Advanced coroutine management using jobs</li>
35+
<li>Cancelling active jobs</li>
36+
<li>Coroutine scoping</li>
37+
</ol>
38+
</li>
39+
<li>
40+
<strong>Navigation Components</strong>:<br>
41+
<ol>
42+
<li>Bottom Navigation View with fragments </li>
43+
<li>Leveraging multiple navigation graphs (this is cutting edge content)</li>
44+
</ol>
45+
</li>
46+
<li>
47+
<strong>Dagger 2</strong>:<br>
48+
<ol>
49+
<li>custom scopes, fragment injection, activity injection, Viewmodel injection</li>
50+
</ol>
51+
</li>
52+
<li>
53+
<strong>MVI architecture</strong>:<br>
54+
<ol>
55+
<li>Basically this is MVVM with some additions</li>
56+
<li>State management</li>
57+
<li>Building a generic BaseViewModel</li>
58+
<li>Repository pattern (NetworkBoundResource)</li>
59+
</ol>
60+
</li>
61+
<li>
62+
<strong>Room Persistence</strong>:<br>
63+
<ol>
64+
<li>SQLite on Android with Room Persistence library</li>
65+
<li>Custom queries, inserts, deletes, updates</li>
66+
<li>Foreign Key relationships</li>
67+
<li>Multiple database tables</li>
68+
</ol>
69+
</li>
70+
<li>
71+
<strong>Cache</strong>:<br>
72+
<ol>
73+
<li>Database caching (saving data from network into local cache)</li>
74+
<li>Single source of truth principal</li>
75+
</ol>
76+
</li>
77+
<li>
78+
<strong>Retrofit 2</strong>:<br>
79+
<ol>
80+
<li>Handling any type of response from server (success, error, none, etc...)</li>
81+
<li>Returning LiveData from Retrofit calls (Retrofit Call Adapter)</li>
82+
</ol>
83+
</li>
84+
<li>
85+
<strong>ViewModels</strong>:<br>
86+
<ol>
87+
<li>Sharing a ViewModel between several fragments</li>
88+
<li>Building a powerful generic BaseViewModel</li>
89+
</ol>
90+
</li>
91+
<li>
92+
<strong>WebViews</strong>:<br>
93+
<ol>
94+
<li>Interacting with the server through a webview (Javascript)</li>
95+
</ol>
96+
</li>
97+
<li>
98+
<strong>SearchView</strong>:<br>
99+
<ol>
100+
<li>Programmatically implement a SearchView</li>
101+
<li>Execute search queries to network and db cache</li>
102+
</ol>
103+
</li>
104+
<li>
105+
<strong>Images</strong>:<br>
106+
<ol>
107+
<li>Selecting images from phone memory</li>
108+
<li>Cropping images to a specific aspect ratio</li>
109+
<li>Setting limitations on image size and aspect ratio</li>
110+
<li>Uploading a cropped image to server</li>
111+
</ol>
112+
</li>
113+
<li>
114+
<strong>Network Request Management</strong>:<br>
115+
<ol>
116+
<li>Cancelling pending network requests (Kotlin coroutines)</li>
117+
<li>Testing for network delays</li>
118+
</ol>
119+
</li>
120+
<li>
121+
<strong>Pagination</strong>:<br>
122+
<ol>
123+
<li>Paginating objects returned from server and database cache</li>
124+
</ol>
125+
</li>
126+
<li>
127+
<strong>Material Design</strong>:<br>
128+
<ol>
129+
<li>Bottom Navigation View with Fragments</li>
130+
<li>Customizing Bottom Navigation Icon behavior</li>
131+
<li>Handling Different Screen Sizes (ConstraintLayout)</li>
132+
<li>Material Dialogs</li>
133+
<li>Fragment transition animations</li>
134+
</ol>
135+
</li>
136+
</ul>
137+
<br>

0 commit comments

Comments
 (0)