Google’ฤฑn Codelab’lerini incelerken farkettim ki yeni codelabler eklenmiล ancak bunlar standart olarak https://codelabs.developers.google.com/ sayfasฤฑnda yer almฤฑyor ve de รงok yeni tarihliler. Google’ฤฑn sertifikalarฤฑndan herkes haberdardฤฑr sanฤฑrฤฑm. Bu yeni codelabler, Associate Android Developer sertifika sฤฑnavฤฑnฤฑn hazฤฑrlฤฑk codelableriymiล ve zannedersem son yฤฑllarda Android Development’ฤฑn neredeyse tamamen deฤiลmesiyle beraber burasฤฑ da yenilenmiล. Ben de hem kendim iรงin bilgi tazeleme hem de codelab’ler รผzerinden sฤฑnava hazฤฑrlanacak olan varsa codelab dฤฑลฤฑnda da takฤฑldฤฑฤฤฑ bi yer olursa referans olmasฤฑ aรงฤฑsฤฑyla bu seriyi yazmaya karar verdim. Elimden geldiฤince dรผzenli aralฤฑklarla devamฤฑnฤฑ yazmaya รงalฤฑลacaฤฤฑm. Codelab’ler dฤฑลฤฑnda da linkinde ilgili her bir alt baลlฤฑk iรงin slide’lar ve de ลurada da daha detaylฤฑ aรงฤฑklamalar yer alฤฑyor. Her ikisini de incelemenizi tavsiye ederim.
Bildiฤim kadarฤฑyla sฤฑnav Java’da ancak hepimizin bildiฤi รผzere yeni dรผnya Kotlin kullanฤฑyor. Bu yรผzden kendime de biraz ek challenge olmasฤฑ gerekรงesiyle, Kotlin’de olmayan codelab รถrneklerini Kotlin’le de github’da paylaลacaฤฤฑm. Kotlin’de biraz yeniyim. Eksik gรถrdรผฤรผnรผz yerler iรงin her zaman pr gรถnderebilirsiniz. Bรถylece beraber daha gรผzel bir kaynak oluลturmuล oluruz.
O zaman baลlayalฤฑm ๐
Peki course neler iรงeriyor. Aลaฤฤฑdaki ลekilde listelenmiล 4 bรถlรผmden oluลmaktadฤฑr. Her birinin altฤฑnda farklฤฑ konulara deฤinilmekte.
- Unit 1: Get started
- Unit 2: User experience
- Unit 3: Working in the background
- Unit 4: Saving user data
Android fundamentals 01.1: Android Studio and Hello World
Tabi baลlangฤฑรง olarak, ilk defa Android Development deneyecek herkesin bilgisayarฤฑna Android Studio kurmasฤฑ gerekli. Codelab’in iรงerisinde yazan detaylara รงok fazla deฤinmiyorum.
ฤฐlk codelab aslฤฑnda รงok standart. Yฤฑllar boyunca Android Studio’nun standart templateleri รงok fazla geliลti ve uygulamaya baลlamak gerekli tรผm kurulumlarฤฑ iรงerir oldu. Yeni proje aรงฤฑp, empty Activity seรงeneฤiyle oluลturduฤunuzda ekranฤฑnda hello world yazan bir uygulamaya sahip olacaksฤฑnฤฑz. Temel hatlarฤฑyla codelab’de yazanlarฤฑ รถzetleyecek olursak, Activity sizin kullanฤฑcฤฑyla temas ettiฤiniz nokta, xml dosyasฤฑnda lightweight bir ลekilde ui bilgisi tutuluyor. layout xml dosyanฤฑz, res folderฤฑ altฤฑnda. ฤฐlerde uygulama iรงerisinde ihtiyaรง olacak olan colors, strings, dimens, diฤer layout dosyalarฤฑ vs bu folder altฤฑnda yer alacak. build.gradle dosyasฤฑ ise uygulamanฤฑzn iรงerisinde kullanacaฤฤฑnฤฑz tรผm sdk’lerin dependency olarak tanฤฑmlandฤฑฤฤฑ yer.ย (Project: HelloWorld) ลeklinde oluลan gradle dosyasฤฑ app genelindeki konfigรผrasyonlarฤฑ iรงerirkenย (Module: app) app modรผlรผnรผn konfigรผrasyonlarฤฑnฤฑ tutuyor. Uygulama iรงerisinde birden fazla modรผl olmasฤฑ durumunda ise bunlarฤฑn her birinin gradle dosyalarฤฑ olacak. Son olarak รถnemli bir diฤer dosya ise AndroidManifest.xml dosyasฤฑ. Android bir app bileลenini baลlatabilmek varolduฤunu bilmelidir. Bu yรผzden tรผm activitylerin manifest dosyasฤฑnda tanฤฑmฤฑ yer almalฤฑdฤฑr. Tanฤฑmฤฑ olmayan bir activity’yi start etmek istediฤinizde uygulama crash edecektir.
รok gรผzel ลu an uygulamayฤฑ รงalฤฑลtฤฑrmaya hazฤฑrฤฑz. Uygulamayฤฑ run ettiฤimizde, eฤer aรงฤฑk bir emulatรถr yoksa yenisi create etmemizi isteyecek. Bu รถrnek kullandฤฑฤฤฑmฤฑz birลey olmadฤฑฤฤฑ iรงin Google Play services ekli olanฤฑ kullanmasak da olacaktฤฑr ama ben genelde Google Playli olan versiyonlardan birini seรงiyorum. Android emulatรถrรผ fiziksel cihazlara ihtiyacฤฑmฤฑz olmadan farklฤฑ iลletim sisteminde, รงรถzรผnรผrlรผkte olan cihazlarda uygulamamฤฑzฤฑ test etmemizi saฤlฤฑyor. รok eskiden ลu anki kadar hฤฑzlฤฑ รงalฤฑลan emรผlatรถrlerimiz yoktu maalesef ve uygulamayฤฑ run etmek iรงin fiziksel cihazlarฤฑ tercih ediyorduk. Ancak ลu an emรผlatรถr fiziksel cihazlardan รงok daha avantajlฤฑ konumda. Manifest dosyasฤฑnda yer alan package tagi, uygulamanฤฑzฤฑn unique package name’ini gรถstermektedir. Manifest’deki bir diฤer รถnemli keypointlerden biri de icon deฤiลkeni. Uygulama ikonunu tutmaktadฤฑr.
Eฤer ki uygulamanฤฑzฤฑ fiziksel bir cihazda test etmek istiyor iseniz ise usb debuggingin aรงฤฑk olduฤundan emin olun. Aksi takdirde, usb kablosunu baฤladฤฑฤฤฑnฤฑzda device’larฤฑn altฤฑnda cihazฤฑ gรถremezsiniz. Herลey hazฤฑrsa run dediฤinizde az รถnce emรผlatรถrler รงฤฑkan pencerede ลimdi sizin fiziksel cihazฤฑnฤฑz da gรถrรผnรผyor olacak. Onu seรงip run edebilirsiniz. Logcat’de ลimdi bu fiziksel cihazฤฑna dรผลen loglarฤฑ gรถrmek iรงin ise logcat window’unda en baลta yer alan drop down’dan cihazฤฑ, 2. dropdown’dan da eฤer package name’i deฤiลtirirseniz uygulamanฤฑzdan atฤฑlan loglarฤฑ gรถrebilirsiniz.
Bir sonraki step’de gradle deฤiลikliฤi yapฤฑlฤฑyor. Gradle’da deฤiลiklik her yapฤฑldฤฑฤฤฑnda, sync uyarฤฑsฤฑ otomatik olarak รงฤฑkar. Sizin ekstra herhangi birลey yapmanฤฑza gerek yoktur. Yalnฤฑz tรผm dependencyler internet รผzerinden update olduฤu iรงin Android geliลtirmesi yaptฤฑฤฤฑnฤฑz sรผre boyunca internet baฤlantฤฑnฤฑzฤฑn olmasฤฑ รถnemli.
Az รถnce รงok kฤฑsaca logcat’den bahsetmiลtim. Logcat hatalarฤฑ gรถrmek, uygulamayฤฑ debug etmek iรงin รงok kuvvetli bir tooldur. Log.x (d: debug, i:info, w:warning, e:error) methodunu kullanarak farklฤฑ seviyelerde loglama yapabilir ve yazdฤฑklarฤฑnฤฑzฤฑ logcat’in panelinde gรถrebilirsiniz. Verbose’da tรผm mesajlarฤฑ gรถrรผrsรผnรผz. Debug seviyesinde logladฤฑฤฤฑnฤฑz datayฤฑ release de gรถrmezsiniz, bu sebeple geliลtirme sฤฑrasฤฑnda hฤฑzlฤฑ รงรถzรผm bulmak adฤฑna รถnemli olabilecek รถrneฤin network request cevaplarฤฑ gibi datalarฤฑn loglanmasฤฑ developmentฤฑ kolaylaลtฤฑracaktฤฑr.
Kapanฤฑลtaki sorularฤฑn cevaplarฤฑna gelirsek:
Question 1
What is the name of the layout file for the main activity?
MainActivity.java
AndroidManifest.xml
activity_main.xml
build.gradle
Question 2
What is the name of the string resource that specifies the application’s name?
app_name
xmlns:app
android:name
applicationId
Question 3
Which tool do you use to create a new emulator?
- Android Device Monitor
- AVD Manager
- SDK Manager
- Theme Editor
Question 4
Assume that your app includes this logging statement:
Log.i("MainActivity", "MainActivity layout is complete");
You see the statement “MainActivity layout is complete” in theย Logcatย pane if the Log level menu is set to which of the following? (Hint: multiple answers are OK.)
- Verbose
- Debug
- Info
- Warn
- Error
- Assert
Projeler:
References and more:
- https://codelabs.developers.google.com/android-training/
- https://codelabs.developers.google.com/codelabs/android-training-welcome/index.html?index=..%2F..android-training#0
- https://codelabs.developers.google.com/codelabs/android-training-hello-world/index.html?index=..%2F..android-training#12
- https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-1-get-started/lesson-1-build-your-first-app/1-1-c-your-first-android-app/1-1-c-your-first-android-app.html
- https://goo.gl/RN2osg
2 responses to “Android Fundamentals Codelabs Part – 1”
[…] ← Previous […]
[…] You can reach the Turkish version of the post from here. […]