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