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