-1+1583 
Learn Android by building a Twitter app

I am building an Android tutorial with app-first approach. Usually, people learn concepts first & then implement it an app. But most of the devs (including me), usually like to learn a new technology by start developing an app in it. I am trying to do the same at Codelearn & currently focussing on the Android tutorial.

The plan is to create a full-fledged production ready Twitter app from scratch. It is just 30% complete for now. So I have decided to keep posting the links of the lessons as & when they become available.

Since it is a hands-on tutorial, I have also built an Eclipse plugin, that would test your app at the end of every lesson to ensure you are building it right. You can either choose to just read the tutorial but I would recommend installing the plugin, trying the tutorial & get it tested from our server. I have written bunch of Robolectric tests that would test user's app at every lesson.

The tutorial is work in progress & some lectures are already live on the website. I have put some of the lessons & I will add one lesson every week

Lectures
  1. Android App Building Block Introduction

    Before starting to build Android apps, you need to understand the basics of Android app components. This lesson is the place total Android newbies should get started .

  2. Android Development Environment Setup

    Now that you are aware of the basic building blocks, its time to get started with Android setup. There is a small video on how to install the Android ADT bundle on your PC.

  3. Why you should learn by building an app

    Instead of just reading up some concepts, you should always start by building an app. Here, we will be building a Twitter app from scratch to production.

  4. Hello World in Android

    Now that you have all the setup done, it is time to start with 'Hello World'. This lesson has a small screencast for you to understand how the control flow happens in a basic Android app. How Activity acts as the main entry point in the app, how Actvity uses Layout as the Views & how string values are kept in strings.xml .

  5. Ideating the Twitter app

    The first step before the app is built is to create mockups for it. But since we are replicating an already created app, we are going to pick only a few screens, simplify the architecture & going to build the User Interface one by one.

  6. Change Hello World to Hello Twitter

    We are going to change the Hello World title that we build in lesson 4 to Hello Twitter. We are also going to make the text cover the complete width of the screen using android:width attribute of the TextView & changing it to matchparent from wrapcontent

Prerequisites
  1. Prior Java or any other MVC programming language/framework experience

  2. Prior working knowledge with Eclipse

Syllabus

The course will include all the basics of Android App Development

  1. Activity, Layout, Basic Views.
  2. ListView
  3. Intents
  4. Local Storage (Files & SharedPreference)
  5. Logging
  6. Parallel process (AsyncTask)
  7. Models in Android
  8. Network Programming
  9. JSON Handling
  10. Twitter4J API usage
  11. Complex UI elements through Fragments
  12. Notifications of new tweets
  13. Background Service to keep listening for new tweets
  14. Basic theming
  15. Incorporating an externally designed theme

All the material will be hosted on Codelearn website. Some of the content is already live.

Additional information
Teacher qualifications

I am founder of Codelearn - a website that teaches a technology with app first approach. I have earlier created Rails tutorial on Codelearn which got reasonable attention on Reddit & Hacker News. I am not an Android experts & have an Android friend helping with the content. I learn from it myself, structure it the right way & then release it. I am the learner / QA guy for it.

Latest Update

none

Roster
1. mdus
2. kms482
3. passaround
4. khichi
5. tht2012
6. DThomas6
7. foolishneko
8. connollyed
9. nitins
10. jsmarquez
11. scprice
12. underture
13. christianblough
14. Peroviendo
15. Zanothis
16. runner2012
17. hexdream
18. jtmbags
19. secretagent01
20. murphsbg
21. nerdisaster
22. kishansundar
23. Y4SiN
24. Richo1337
25. brandonlearning2
26. LarryThreezor
27. Augustine
28. aravind
29. gingerfett
30. abhaybisht
31. Abayommii
32. CompSciStruggleBus
33. corycruse
34. noise
35. daPloy
36. highsung
37. wgmartin34
38. wwalid2050
39. dani.cretu
40. zerthtobe
41. otrobruno
42. swapniljain26
43. jabunda
44. Badkarma92
45. gchevalley
46. fifita93
47. ElectronicByte
48. AnC
49. crichm03
50. namone
51. livelivelivever
52. RicoSpartan
53. praveenc
54. rvramesh20
55. tesla47
56. surya
57. pirehappy
58. ThatAwesomeRedditor
59. ragnob
60. buguoruci
61. zwangzob
62. ArsSesame
63. dc2000dsl
64. xkakusa
65. Nick7
66. ivose
67. thejoepilato
68. barra
69. kataninja
70. lukasevych
71. burton87420
72. tyrantwarship
73. shyamb
74. aronsson
75. boolover
76. LMPtG1
77. valdiz777
78. klysium
79. Travis.Kraatz
80. geniiissss
81. sejologics
82. SourabhKondapaka
83. mikinbing
84. chankeypathak
85. waddlewaddlequack
86. wombledan
87. da0klesk
88. ipown11
89. The3rdIcon
90. NotReallyMyJob
91. stoneyq2
92. brit3r
93. romankyiv
94. jbabs
95. ekecebasoglu
96. rgcase
97. Joka999
98. gatea
99. pavanb
100. xjxrxvx
101. mouh147
102. umlzone
103. mayuri0patel
104. shelves
105. Xang0
106. sandkuma
107. Theguybehindthescreen
108. Fredgravy
109. Plasmonix
110. ralry11
111. Jewseppi
112. malcolmesque
113. vinsanity16985
114. rushrush24
115. LordParadox
116. confettimat
117. kkmcg21
118. aqualad
119. hamdani
120. pangurbon
121. NinjaMuffin
122. P3t3rU5
123. vaGnomeMagician
124. theClauss
125. _Rozenwyn_
126. sapikurus
127. Usagi
128. Leeloo
129. theopihi
130. asingh21
131. duphma
132. shalashtein
133. bdqnghi
134. chipster
135. Jpmulongo
136. akstrp
137. Sarcastic-swanny
138. diogo7dias
139. Golden_Narwhal
140. mongst
141. bongo
142. butch-RCP
143. imonthejazz
144. kevinnguyen
145. ctruman
146. startupankur
147. CatalinWeb
148. danyonu
149. sntgn
150. semihkaan
151. fagunbhavsar
152. Omotola-gb
153. Victor
154. erdenertaptik
155. makateller
156. kahramanburak
157. kdlynch12
158. rickoslyder
159. arindampradhan
160. saksoy
161. ak7584
162. babushan
163. sudhish4
164. harrig01
165. theguywithacomputer
166. Higs
167. A_Badass_Penguin
168. aphodite
169. SecsPhreek
170. emceemcee
171. 20sat92
172. adititiwari92
173. IscoCuesta
174. suresheryl
175. ibs484
176. mp97104
177. givingitatry
178. rigamaroo138
179. itzfish
180. hooray4alex
181. n9praveen
182. ivanureddit00
183. use
184. Enza514
185. dvsax357
186. fillphree
187. celeryz
188. kjbalaji
189. jimmmyboy
190. afirex
191. Supplebuffalo
192. ravix
193. uhsayer
194. qerardo
195. emreakaguney
196. shad_90
197. obesechicken13
198. stevecantrell
199. pcjonathan
200. nihility
201. datatrak
202. yokanand
203. doruk
204. Solonar
205. mostLemons
206. sheikhshadi
207. deividc
208. petemonkeyguts
209. leokov28
210. Janjakob
211. greystone
212. mrVaNasty
213. rickmont
214. lizazu
215. Tizamarou
216. grigoramb
217. fuzzparsec
218. Ozzie
219. glamarouane
220. spazzoo
221. chiefwm
222. billgoldberg
223. ekobar
224. BishopDonEdwin
225. beltboxington
226. Nanodive
227. switchmod
228. buzzly
229. caesarooke
230. Driplone
231. brownix001
232. juggler0
233. vainotuisk
234. monicaleba
235. add1ction
236. dbca2014
237. Mo3tazElHawary
238. scotthendo
239. princesspoohs
240. ftec
241. domcar18
242. codestrophe
243. rameez_s
244. javin666
245. mariam_94
246. Calaennis
247. akn3107
248. kgwscarffe
249. snazzster
250. Sitting_Luck
251. naeemnur
252. meronam
253. vladvaldez
254. cliffmayer
255. neubien
256. yoze15
257. rusty_vin
258. kamronb
259. frost_biten
260. tjx62
261. bbonjui4835
262. luoslamora
263. myndhack
264. therox
265. burca14
266. JamesCas91
267. marloper
268. Jelica
269. theGalatian
270. daisy
271. abigail23
272. g-ufbmcs5.2
273. ChaceHunter
274. jsmiky
275. pagerussell
276. joelmm1
277. DARLS
278. Ayama
279. antman
280. Mr.campbell
281. shilezi
282. logik8469
283. Andres
284. rockedt
285. jshuadvd
286. Bibi12
287. bluwaterdogz
288. QuantumQuark5
289. altSHIFTT
290. seanknight
291. niravnb
292. ConanBryan
293. siXor93
294. com2012
295. SUBZERO257
296. Hariboheart
297. ACypress
298. miagirl75
299. jrolsmith
300. Recp
301. alexvilch
302. Yahiko
303. qhett
304. Spartyftw
305. omarlashkar
306. flightofthemoa
307. alexantherethegreat
308. VGMTaylor
309. IoanaKeke
310. MojiS
311. EyeKyu
312. chiqri76
313. 42Primeminester
314. dbowins1
315. entrepreneur2015
316. apocrypha13142
317. ansiblefuturist
318. Raddok
319. bhudlemeyer
320. revillo21
321. Krishan14
322. malcamus_
323. vinicius97
324. faraji
325. rumtigger
326. AtulK
327. WeaponsMaster9
328. qquiver
329. majidjaved1995
330. tanimkg
331. TheBest
332. CloudPortal
333. kamila11001
334. apis88
335. sam112358
336. CrazyLineman777
337. anaconda101
338. gmontague0205
339. Zero21
340. tardturtle
341. kanaqsasak
342. chinktank
343. endeavour
344. bearsfan654
345. GoanToKillYou
346. alashcraft
347. iheardulkwafflez
348. TangoCheetahs
349. jainpuneet28
350. mrjtcb
351. zaligon
352. fenix_mallu
353. VMolnar89
354. bymythroat
355. ahanzala
356. mynameisdance
357. rameznabel
358. mcquintrix
359. dabulmaster
360. willwees
361. xeudonym
362. a13ph
363. danqili
364. causa77
365. jacoph
366. R3vis1on
367. sebuelias
368. jtazzk
369. jatel0
370. sookoor
371. lishiyo
372. Knightoverlord
373. theusualuser
374. Alexm713
375. ebsonc
376. darkx2999
377. Jmr100
378. benewen
379. nishant.nikhil
380. 0069
381. Anomalous3
382. golovin
383. entfish
384. wrismawan
385. InterestedButLayzee
386. Glitchgeek
387. staffVjc
388. esezaris
389. gulshngill
390. falken222
391. ericpts
392. benjo456
393. insaneboy
394. serap
395. susie83
396. stoptop
397. TKSaurus
398. BullitofStatic
399. Dott81
400. jclegall
401. teucer9
402. nahit7
403. bmgm
404. terryisnice
405. ankitsawarkar
406. rafaelmsartor
407. greenredidunno
408. longman8
409. ACarter01
410. bubo
411. brokentemple
412. Talamand
413. nirbhay_ahir
414. sisyphean
415. DaViinci
416. ahmedism
417. myw0rkacc0unt
418. nukeduke
419. tonyn679
420. theabeman
421. cafeting
422. albo1997
423. honoredstudent
424. tonychoco
425. lnajla
426. morpheu5
427. chennaiboy99
428. nebace
429. jw1984
430. AndersAndCooper
431. aerostudents
432. johnqq
433. mcstraun
434. royal_penguin
435. nickc98
436. crixaliz
437. iraid3r
438. distanzmensch
439. iosoirojo
440. storefront
441. saahil
442. tmadeira8
443. pellapin
444. jhanak
445. blankspace
446. amar771
447. PaperNinja
448. randomdudewatchingvid
449. a2kram
450. dm3233
451. AfroSupreme
452. rakeysh
453. dillibabuj
454. laky_boss
455. user123456789
456. SanJee
457. timgrayson
458. Chmoore91
459. Dharti
460. enigma123
461. jlramirez43
462. Greg.Dablju
463. minkyuman
464. Palooza
465. hatani
466. c.chung
467. staddlez
468. weapon66
469. OfficialFluttershy
470. HematiaVerde
471. shizopotam
472. felimenta970
473. valarMorghulis
474. Muhammad313
475. CautiousNarwhal
476. YagamiLawliet
477. matheusov
478. spice_addiction
479. vru11ra
480. kapiladinirukshana
481. codyhtueaung
482. michelleusam
483. thereisnosuch
484. daspartha917
485. mishra.0x
486. shaikh_saqib
487. along148
488. neoezekiel
489. KillDreameater
490. Learnerktm
491. feyzee
492. VoluntasDei
493. paguerrero
494. Prepare2Kawaii
495. sabrina123
496. exigence
497. erwinlarios
498. gr8gatzby
499. Driiiv3
500. cs.priya
501. TheOtherG
502. aladwi
503. saimancroy
504. BadBarbarian
505. p3t3r.tnie
506. modi.herik
507. lurker1000
508. ddamico
509. MorganRTJ
510. Yasirsubhani
511. pro_procrastinator47
512. spaunova
513. Hipsterfarmerman
514. sawsenchaabnia
515. Btch
516. andreeacom
517. aramanau
518. mtschill
519. vgafenco
520. balles
521. Billabonged
522. m3asmi
523. ajayt6
524. drego3dx
525. hvural
526. dashmoho
527. misterdeividas
528. ti-inspire
529. paydatolltroll
530. william.johnson1968
531. ezeledon19
532. jaisu9
533. xkalibrr
534. challanger
535. caed
536. soufian
537. anveshjadav
538. sad1979
539. shrutir58
540. rromo12
541. habibjanjua
542. Fran
543. cheesyc
544. mikeross13007
545. Nicoleweber2025
546. Voxnipop
547. b_kay
548. shloch
549. ivorromu
550. suhas_darsi
551. maftoun95
552. dlgchicago
553. sodainmycereal
554. magik
555. lzz
556. mauchter
557. hannahmary2010
558. geoful
559. Panky
560. EJAZ123
561. alexoanimaignis
562. Kapital_G
563. Sudesbparate
564. mahavirsinh
565. blackiszero
566. bogeka
567. kapilchawla
568. groverinri
569. tintin21
570. kararts
571. mrroc
572. pankajdnb
573. manhar
574. Sony
575. burgerque3n
576. 0rgand0n0r
577. ioanavaida23
578. Asteroria
579. gcastorrr
580. armking
581. joshichaitanya338
582. gopikishore
583. syedsufwan
584. Kbarakzai
585. surej
586. High.Do
587. jyo_8421
588. 732215
589. bony143
590. Keepatitbro
591. tkim415
592. gee.bach
593. StelaSG
594. wildstraywolf
595. anfod
596. khier
597. Meghnasarvaiya
598. Mantasha6
599. hiimd
600. FuckinPrawns
601. guidosantillan01
602. preet.patel
603. abhicps
604. hooplaserro
605. Edrees
606. sharmav996
607. cyrus64
608. snrasl_1980
609. mr_swagster
610. chummypixels
611. Heaven_slayer
612. Heinr01
613. AG1973
614. Rintzler13
615. Vasiliy987011
616. jubbafett
617. Glo-kta