-1+1612 
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. kgwscarffe
248. snazzster
249. Sitting_Luck
250. naeemnur
251. meronam
252. vladvaldez
253. cliffmayer
254. neubien
255. yoze15
256. rusty_vin
257. kamronb
258. frost_biten
259. tjx62
260. bbonjui4835
261. luoslamora
262. myndhack
263. therox
264. burca14
265. JamesCas91
266. marloper
267. Jelica
268. theGalatian
269. daisy
270. abigail23
271. g-ufbmcs5.2
272. ChaceHunter
273. jsmiky
274. pagerussell
275. joelmm1
276. DARLS
277. Ayama
278. antman
279. Mr.campbell
280. shilezi
281. logik8469
282. Andres
283. rockedt
284. jshuadvd
285. Bibi12
286. bluwaterdogz
287. QuantumQuark5
288. altSHIFTT
289. seanknight
290. niravnb
291. ConanBryan
292. siXor93
293. com2012
294. SUBZERO257
295. Hariboheart
296. ACypress
297. miagirl75
298. jrolsmith
299. Recp
300. alexvilch
301. Yahiko
302. qhett
303. Spartyftw
304. omarlashkar
305. flightofthemoa
306. alexantherethegreat
307. VGMTaylor
308. IoanaKeke
309. MojiS
310. EyeKyu
311. chiqri76
312. 42Primeminester
313. dbowins1
314. entrepreneur2015
315. apocrypha13142
316. ansiblefuturist
317. Raddok
318. bhudlemeyer
319. revillo21
320. Krishan14
321. malcamus_
322. vinicius97
323. faraji
324. rumtigger
325. AtulK
326. WeaponsMaster9
327. qquiver
328. majidjaved1995
329. tanimkg
330. TheBest
331. CloudPortal
332. kamila11001
333. apis88
334. sam112358
335. CrazyLineman777
336. anaconda101
337. gmontague0205
338. Zero21
339. tardturtle
340. kanaqsasak
341. chinktank
342. endeavour
343. bearsfan654
344. GoanToKillYou
345. alashcraft
346. iheardulkwafflez
347. TangoCheetahs
348. jainpuneet28
349. mrjtcb
350. zaligon
351. fenix_mallu
352. VMolnar89
353. bymythroat
354. ahanzala
355. mynameisdance
356. rameznabel
357. mcquintrix
358. dabulmaster
359. willwees
360. xeudonym
361. a13ph
362. danqili
363. causa77
364. jacoph
365. R3vis1on
366. sebuelias
367. jtazzk
368. jatel0
369. sookoor
370. lishiyo
371. Knightoverlord
372. theusualuser
373. Alexm713
374. ebsonc
375. darkx2999
376. Jmr100
377. benewen
378. nishant.nikhil
379. 0069
380. Anomalous3
381. golovin
382. entfish
383. wrismawan
384. InterestedButLayzee
385. Glitchgeek
386. staffVjc
387. esezaris
388. gulshngill
389. falken222
390. ericpts
391. benjo456
392. insaneboy
393. serap
394. susie83
395. stoptop
396. TKSaurus
397. BullitofStatic
398. Dott81
399. jclegall
400. teucer9
401. nahit7
402. bmgm
403. terryisnice
404. ankitsawarkar
405. rafaelmsartor
406. greenredidunno
407. longman8
408. ACarter01
409. bubo
410. brokentemple
411. Talamand
412. nirbhay_ahir
413. sisyphean
414. DaViinci
415. ahmedism
416. myw0rkacc0unt
417. nukeduke
418. tonyn679
419. theabeman
420. cafeting
421. albo1997
422. honoredstudent
423. tonychoco
424. lnajla
425. morpheu5
426. chennaiboy99
427. nebace
428. jw1984
429. AndersAndCooper
430. aerostudents
431. johnqq
432. mcstraun
433. royal_penguin
434. nickc98
435. crixaliz
436. iraid3r
437. distanzmensch
438. iosoirojo
439. storefront
440. saahil
441. tmadeira8
442. pellapin
443. jhanak
444. blankspace
445. amar771
446. PaperNinja
447. randomdudewatchingvid
448. a2kram
449. dm3233
450. AfroSupreme
451. rakeysh
452. dillibabuj
453. laky_boss
454. user123456789
455. SanJee
456. timgrayson
457. Chmoore91
458. Dharti
459. enigma123
460. jlramirez43
461. Greg.Dablju
462. minkyuman
463. Palooza
464. hatani
465. c.chung
466. staddlez
467. weapon66
468. OfficialFluttershy
469. HematiaVerde
470. shizopotam
471. felimenta970
472. valarMorghulis
473. Muhammad313
474. CautiousNarwhal
475. YagamiLawliet
476. matheusov
477. spice_addiction
478. vru11ra
479. kapiladinirukshana
480. codyhtueaung
481. michelleusam
482. thereisnosuch
483. daspartha917
484. mishra.0x
485. shaikh_saqib
486. along148
487. neoezekiel
488. KillDreameater
489. Learnerktm
490. feyzee
491. VoluntasDei
492. paguerrero
493. Prepare2Kawaii
494. sabrina123
495. exigence
496. erwinlarios
497. gr8gatzby
498. Driiiv3
499. cs.priya
500. TheOtherG
501. aladwi
502. saimancroy
503. BadBarbarian
504. p3t3r.tnie
505. modi.herik
506. lurker1000
507. ddamico
508. MorganRTJ
509. Yasirsubhani
510. pro_procrastinator47
511. spaunova
512. Hipsterfarmerman
513. sawsenchaabnia
514. Btch
515. andreeacom
516. aramanau
517. mtschill
518. vgafenco
519. balles
520. Billabonged
521. m3asmi
522. ajayt6
523. drego3dx
524. hvural
525. dashmoho
526. misterdeividas
527. ti-inspire
528. paydatolltroll
529. william.johnson1968
530. ezeledon19
531. jaisu9
532. xkalibrr
533. challanger
534. caed
535. soufian
536. anveshjadav
537. sad1979
538. shrutir58
539. rromo12
540. habibjanjua
541. Fran
542. cheesyc
543. mikeross13007
544. Nicoleweber2025
545. Voxnipop
546. b_kay
547. shloch
548. ivorromu
549. suhas_darsi
550. maftoun95
551. dlgchicago
552. sodainmycereal
553. magik
554. lzz
555. mauchter
556. hannahmary2010
557. geoful
558. Panky
559. EJAZ123
560. alexoanimaignis
561. Kapital_G
562. Sudesbparate
563. mahavirsinh
564. blackiszero
565. bogeka
566. kapilchawla
567. groverinri
568. tintin21
569. kararts
570. mrroc
571. pankajdnb
572. manhar
573. Sony
574. burgerque3n
575. 0rgand0n0r
576. ioanavaida23
577. Asteroria
578. gcastorrr
579. armking
580. joshichaitanya338
581. gopikishore
582. syedsufwan
583. Kbarakzai
584. surej
585. High.Do
586. jyo_8421
587. 732215
588. bony143
589. Keepatitbro
590. tkim415
591. gee.bach
592. StelaSG
593. wildstraywolf
594. anfod
595. khier
596. Meghnasarvaiya
597. Mantasha6
598. hiimd
599. FuckinPrawns
600. guidosantillan01
601. preet.patel
602. abhicps
603. hooplaserro
604. Edrees
605. sharmav996
606. cyrus64
607. snrasl_1980
608. mr_swagster
609. chummypixels
610. Heaven_slayer
611. Heinr01
612. AG1973
613. Rintzler13
614. Vasiliy987011
615. jubbafett
616. Glo-kta
617. eptins
618. ahmed5_27
619. ranjitha1225
620. Roderyx
621. thegreatvs
622. issa26
623. Prashanthi
624. kaustubh_deokar
625. Muneeb1997
626. Sean_Yong
627. saloohstar
628. brainiac5000
629. astaarg
630. ascppl
631. Nokmen
632. gh0s7
633. firasniper
634. Regime
635. manishb27
636. Vincenttaylor99k
637. ee_trout
638. Ujjal.0011
639. candidodmv
640. texas888
641. TheQuestForGold
642. shastrivj
643. sarather1999
644. MrPdaPimp
645. GunsoSniper
646. majidhws
647. vishnu_117
648. Husam21
649. dhershkowitz
650. tron44
651. AlexandreHTI
652. jaga94