Android Developer Roadmap — Fundamentals 1

Merve Tafralı
6 min readApr 22, 2022

Herkese merhaba, bugün sizlerle Android Developer olma yolunda ilerlerken hangi kaynaklara bakarak çalıştığımı, hangi uygulamaları yazdığımı anlatacağım uzun bir yola çıkıyorum. Kaynakların hepsini link olarak ekleyeceğim ve bu dokümantasyon bu kaynakların Türkçe versiyonu olacaktır.

Kaynakların orijinalinden ilerlemek isteyenler için Linkleri ekliyorum,
Trello ve Medium kaynaklarından başlayarak ilerleyeceğim.

Öncelikle Trello linkinde bulunan Fundamentals bölümünden ilerleyeceğim. Başlangıç kısımları öğrenme yolculuğumuzun en ufak adımları olacaktır. Yavaş ve emin adımlarla ilerleyeceğiz.

  1. Genel Terminal Komutlar
  2. Git Nedir?
  3. Git Flow Nedir?

1. Genel Terminal Komutları

Öncelikle yeni başlayan herkese söylemem gerekir ki kısa yollar, buna benzer komutlar kullandıkça alışkanlık haline gelecek şeylerdir. Genel olarak bu tür kısa yolları, komutları öğrenmek için herhangi bir IDE’nin yada command shell’in cheat sheet resimlerini elinizin altında bulundurmanızı tavsiye ediyorum. İstediğiniz kısa yollar için … cheat sheet diye arama moturuna yazdığınızda nelerin kısa yollarını öğrendiğiniz de mutlu olacağınızı düşünüyorum 😜
Komut satırı için faydalı olacak linkler,

1. Learning some basic terminal commands
2. Basic Command-line Knowledge for Beginners

Bu yazıların yanı sıra bilinmesinde fayda olan klavye kısa yolları;

#Ctrl + A Geçerli satırdaki tüm metni seç.#Shift + ← Seçimi bir karakter sola genişlet#Shift + Ctrl+
Şu anki seçimi sola doğru bir kelime genişlet
#↑Shift + Home Seçimi komutun başlangıcına kadar genişlet.#Tab Klasör ve dosya isimlerini otomatik tamamla#Insert Ekleme modunu etkinleştir.#F7 Önceki komutların listesini göster
Komutlar arasında dolaşmak için yukarı ve aşağı tuşlarına basabilir ve çalıştırmak için Enter'a basabilirsiniz.
#Alt + F7 Komut geçmişini temizle#F8 Komut geçmişinde şu anki komutla eşleşen komutlar arasında geriye doğru gider. Bu kısayol birkaç kez kullandığınız bir komutun bir parçasını yazmak istediğinizde ve geçmişte geriye doğru gitmek istediğinizde faydalı olabilir

Genel terminal kodları,

#pwd Üzerinde çalıştığımız mevcut dizinimizi gösterir.#cd Change Directory'nin kısaltmasıdır.Dizini değiştirmek için kullanılır. ->. şu an bulunduğumuz dizin için ->.. üst dizin için kullanılır.#ls dosyaları listelemek içindir.#type nul >>"file.txt" yeni bir dosya yaratmanızı sağlar#del "file.txt" mevcut dosyayı silmenizi sağlar#dir /b/s *.txt bulunduğunuz dizindeki .txt uzantılı dosyaları listelemeyi sağlar

Bu terminal kodlarının yanı sıra bence iyi bir yazılımcı olma yolunda bizi bir adım daha ileriye götürecek olan adımlardan biri de kullandığımız IDE’ye hakim olmaktan geçiyor. Android Studio bize kod yazarken birden fazla kolaylık sağlıyor. Bu link sizlere faydalı olacaktır.

Yolumuzda emekleyerek ilerlesekte önemli olan ilerlemektir diyerek bir sonra ki konumuza geçiyoruz.

2. Git Nedir?

Yararlanılan linkler,

  1. Git Immersion
  2. Git Guide
  3. Try Github

Git versiyon kontrol sistemidir. Versiyon kontrol sistemleri ise yazılım süreçlerini daha düzenli, karmaşıklıktan uzak hale getirmemize yardımcı olur. Git konusuna tamamen uzaksanız bu linke mutlaka bakmalısınız. GitHub ise Git’i kullanan bulut tabanlı bir hizmettir.

Github projelerimizin saklandığı (depolandığı) uzak sunucudur. Github’a projelerinizi ekleyebilir aynı zamanda istediğiniz public olan farklı projelere Github üzerinden erişerek projeyi bilgisayarınıza indirebilirsiniz. Hatta istediğinizde bu projeler üzerinde değişiklikler yaparak Pull Request gönderebilirsiniz.

İşletim sisteminize uygun olarak bu adresten git kurulumu yapabilirsiniz. Kurulum yaptıktan sonra aşağıda ki komut ile versiyonuzu kontrol edebilirsiniz.

git -version

Evet, kurulumu tamamladık. Şimdi sırada bir adım daha emeklemek var. Kurulumuzu tamamlamak için githuba kim olduğumuzu tanıtmak için ayarları yapmamız gerekiyor.

git config -global user.name “mervetafrali”git config -global user.email “mervetafralii@hotmail.com”

Sıra bazı git komutlarını öğrenmekte,

git init: Bulunduğumuz dizinde repository oluşturmamızı sağlar.

git clone: Bilgisayarımıza/localimize uzak sunucudan bir projeyi indirmek için kullanırız.
git clone /path/to/repository

Bir repo oluşturduk “Hello world” çalıştırdık ve bunu kendi repomuza yollamak istiyoruz. Neler yapmalıyız?

git status: Hangi branch ya da branclerde bir değişiklik yapıldıysa onu göstermek için kullanırız.

git add : Bu komut ile yaptığımız değişiklikler Git’e eklenir.
Tüm dosyaları eklemek için ,git add *

git commit: Yerelde yapılan değişiklikleri kaydetmek için kullanırız.

git commit -m “printed hello world”

git push : Localde yapılan değişiklikleri uzak sunucuya göndermemizi sağlar.

git push origin master

git checkout: İstediğimiz bir branch’e gitmek için kullanırız.

git checkout -b feature_x #Yeni bir branch oluşturmamızı sağlar

git checkout master # master branch'ine geri dönmemizi sağlar

git branch -d feature_x #branch silmemizi sağlar

git pull: local repomuza güncel değişiklikleri çekmek için kullanırız.

git stash : Yapılan değişiklikleri geçici olarak kaydetmemizi sağlar.

git fetch : Uzak sunucudaki kodları localimize indirir.

git merge: Localimizde olan branch’i başka bir brach ile birleştirmek için kullanırız.

git diff:Merge işlemi yapmadan önce değişiklikleri görmek için kullanırız.

git diff <source_branch> <target_branch>

git tag: Yazılım sürümleri için etiket oluşturmak için kullanırız. 1.0.0 adında yeni bir etiket oluşturabilirsiniz.

git tag 1.0.0 1b2e1d63ff #buradaki 1b2e1d63ff commit id'sidir.

git log: Kontrol sisteminde oluşturulmuş commit geçmişini tarihsel olarak sondan başa doğru sırasıyla konsola yazan komuttur.

git log --author=merve #belirli kişinin commitlerini görmek içingit log --name-status #hangi dosyaların değiştiğini görmek içingit log --help #tüm komut detayları için

3. Git Flow Nedir?

Git Flow, Vincent Driessen tarafından bulunan branch yönetimini kolaylaştıran git eklentisidir. Detaylı inceleme linkleri ;

  1. GitFlow
  2. Gitflow Workflow

Peki neden kullanmalıyız Git flow’u? Aslında en büyük avantajı paralel geliştirme süreçlerini çok kolay hale getirmesi ve yeni geliştirilen özelliklerin ya da yapılan düzenlemelerin bitmiş kısımdan ayrı geliştirilmesini kolaylaştırır.

Bilgisayarınız da kurumları yaptıktan sonra projenize eklemek için aşağıda ki komutu çalıştırmalısınız.

git flow init

Normalde geliştirmelerimizi yaparken, main ve develop diye iki branch açarız ve sunucu tarafında ki branch ile mergeleriz. Genel olarak tüm geliştirme tarihi buradan takip edilir. Fakat repomuzda git flow init komutunu çalıştırdıktan sonra branch’lerimiz daha keyifli adlar almaya başlar,

git flow init


Initialized empty Git repository in ~/project/.git/
No branches exist yet. Base branches must be created now.
Branch name for production releases: [main]
Branch name for "next release" development: [develop]


How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []


$ git branch
* develop
main

Feature branches: Yeni geliştirmeler (yeni özellikler, acil olmayan hata düzeltmeleri) bu branch’te yapılır.

Feature branch’leri, develop branch’lerinden ayrılır ve tamamlanan özellikler ve düzeltmeler, yayınlanmaya hazır olduklarında yeniden develop branch’inde birleştirilir.

Bir yayın yapma(realese) zamanı geldiğinde, develop branch’inden bir release branch’i oluşturulur.

Release branch’inde olan kod, uygun bir test ortamına dağıtılır, test edilir ve herhangi bir sorun doğrudan release branch’inde giderilir. Bu deploy → test → düzeltme → redeploy→ yeniden test döngüsü, versiyon müşterilere sunmak için yeterince iyi olduğundan emin olana kadar devam eder.

Versiyon bittiğinde, release branch’inde yapılan herhangi bir değişikliğin yanlışlıkla yeni geliştirme tarafından kaybolmamasını sağlamak için master branch ve develop branch birleştirilir.

Master branch yalnızca realesed branch’in kodunu izler. Master için yalnızca release branch’lerinden ve hotfix branch’lerinden. birleştirmeler yapılır.

Hotfix branch’leri, acil durum düzeltmeleri oluşturmak için kullanılır.

Feature branch’i oluşturmak için aşağıdaki komutu çalıştırmalıyız,

git flow feature start feature_branch

Geliştirme adımlarımız tamamlandıktan sonra çalıştırılacak kod,

git flow feature finish feature_branch

Kodlarımızı realese etmek için,

git flow release start 0.1.0
git flow release finish '0.1.0'

Sürüm gönderilmeye hazır olduğunda, main ve develop branch’leri birleştirilir , ardından sürüm dalı silinir. Realese branch’ine kritik güncellemeler eklenmiş olabileceğinden ve yeni özellikler için erişilebilir olmaları gerektiğinden, develop branch’i ile birleştirmek önemlidir.

Örneğin, hotfix branch’i oluşturduk ve düzenlemeleri tamamladık. Merge için aşağıdaki kodları çalıştırdığımız da git flow ile tüm işlemler tamamlanmış olacaktır,

git checkout master
git checkout -b hotfix_branch

Ama git flow kullanmadan aşağıda ki tüm komutları çalıştırmamız gerekir,

git checkout master 
git merge hotfix_branch
git checkout develop
git merge hotfix_branch
git branch -d hotfix_branch

Bu yazının birinci serisinde Android Roadmap’a girmek için bakmamız gereken patikalardan ilkini tamamlamış olduk. Bir sonra ki yazımda bizi bir adım daha ileriye götürecek yeni konuları keşfedeceğiz.

Sign up to discover human stories that deepen your understanding of the world.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Responses (1)

Write a response