Alternatifler

Mobil Uygulama Geliştirme İçin En İyi Ücretsiz CI/CD Araçları

Flutter, React Native ve native projeler için kullanılabilecek en iyi ücretsiz CI/CD araçlarını karşılaştırıyoruz; imza, emülatör, dağıtım ve sınırlamaları…

İçindekiler
  1. Hızlı Karşılaştırma
  2. GitHub Actions: Depoyla iç içe, kolay entegrasyon
  3. GitLab CI/CD: Self-hosted kontrol ve pipeline esnekliği
  4. Codemagic: Mobil için hazır, Flutter ağırlıklı
  5. Bitrise: Mobil pipeline pazar yeri ve hazır entegrasyonlar
  6. Jenkins: Tam kontrol isteyenler için self-hosted güç merkezi
  7. Fastlane: Otomasyon görevlerini standartlaştır
  8. Hangisini Seçmelisin?
  9. Sıkça Sorulan Sorular

Mobil uygulama geliştirme için ücretsiz CI/CD araçları, hem küçük takımlar hem de tek geliştiriciler için zaman kazandırır ve dağıtım süreçlerini otomatikleştirir. Flutter, React Native ve native (iOS/Android) iş akışlarında derleme, imzalama (code signing), test çalıştırma ve mağaza dağıtımı gibi adımlar özel dikkat ister; bu nedenle genel amaçlı CI çözümlerinin mobil ihtiyaçlarına nasıl uyduğunu bilmek önemli.

Bu yazıda mobil odaklı bir açıyla en kullanışlı ücretsiz CI/CD araçlarını ele alıyorum: hangi araç hangi işi daha iyi yapar, iOS ve Android için imza ve provisioning profilleriyle nasıl başa çıkılır, emulator/simulator yönetimi ve mağaza dağıtımları konusunda ne tür sınırlamalar olabilir. Amacım seni hangi aracı seçmen gerektiğine karar vermende kolaylaştırmak.

Hızlı Karşılaştırma

ProgramPlatformEn iyi olduğu işÜcret
GitHub ActionsBulut / Self-hostedRepo tetiklemeli otomasyon, entegrasyonÜcretsiz plan var (sınırlamalar mevcut)
GitLab CI/CDBulut / Self-hostedSelf-hosted runner ile tam kontrol, private projelerÜcretsiz plan var (sınırlamalar mevcut)
CodemagicBulutMobil odaklı hazır iş akışları (Flutter öne çıkıyor)Ücretsiz plan var (sınırlamalar mevcut)
BitriseBulutMobil uygulama pipeline şablonları, market entegrasyonlarıÜcretsiz plan var (sınırlamalar mevcut)
JenkinsSelf-hostedTam özelleştirilebilir, self-hosted altyapılarAçık kaynak, kendin barındırman gerekir
FastlaneCLI / Otomasyon kütüphanesiİmzalama, mağaza yükleme, ekran görüntüsü otomasyonuAçık kaynak, ücretsiz

GitHub Actions: Depoyla iç içe, kolay entegrasyon

GitHub Actions, kod depo ile sıkı entegre çalışan bir otomasyon platformudur. Mobil projelerde tetiklemeleri (push, PR, tag) iş akışlarına çevirip derleme, test ve dağıtım adımlarını çalıştırabilir. GitHub'ın ekosistemi içinde olduğu için paket yönetimi, issue tabanlı tetikleme ve marketplace'ten hazır action'larla hızla işe başlanabiliyor.

Mobil tarafında GitHub Actions ile Android ve iOS derlemeleri, emulator/simulator başlatma, keystore/provisioning dosyalarını güvenli şekilde secrets olarak saklayıp kullanma yaygın bir yaklaşımdır. Ancak macOS runner'lar ücretsiz kullanımda kısıtlı olabilir; iOS derlemelerinde genellikle self-hosted macOS makineler tercih edilir.

Artıları

  • Depoyla sıkı entegrasyon, GitHub Marketplace'te çok sayıda mobil action var
  • Secrets yönetimi ve artifact kayıt yetenekleri güçlü
  • Hem bulut hem self-hosted runner desteğiyle esneklik sağlıyor

Eksileri

  • Ücretsiz macOS bulut runner kaynakları sınırlı olabilir (iOS derlemelerinde self-hosting gerekebilir)
  • Büyük projelerde paralel derleme kotalarıyla karşılaşabilirsin

Kimler için? GitHub'da kod tutan, otomasyonunu depo ile birlikte yönetip hazır action'lar kullanmak isteyenler için.

GitLab CI/CD: Self-hosted kontrol ve pipeline esnekliği

GitLab CI/CD, hem bulut hem self-hosted kullanımda güçlü pipeline tanımları sunar. Mobil ekipler için runner'lar sayesinde macOS veya Linux tabanlı kendi makinelerini bağlayabilir, depolama ve network kontrolünü elinde tutabilirsin. YAML tabanlı pipeline'lar, stage ve job ayrımıyla büyük proje yapılarında okunabilirlik sağlar.

iOS için kendi macOS runner'ını kurmak ve provisioning süreçlerini runner üzerinde yönetmek yaygın bir yöntemdir. Android tarafında ise emülatör kurulumu ve Gradle cache'leri ile hız kazanabilirsin. GitLab ayrıca artifact, cache ve container registry entegrasyonları sunar.

Artıları

  • Self-hosted runner ile tam kontrol; kurumsal gizlilik gereksinimleri için uygun
  • Detaylı pipeline yapılandırma ve job paralelleştirme seçenekleri
  • Artifact ve cache yönetimi güçlü

Eksileri

  • Kendi runnerlarını yönetmek operasyonel yük getirir
  • Bulut kullanımda da aylık kredi/kota sınırlamaları olabiliyor

Kimler için? Özel altyapı veya sıkı gizlilik gereksinimi olan, self-hosted runner kullanmaya hazır ekipler için.

Codemagic: Mobil için hazır, Flutter ağırlıklı

Codemagic mobil geliştirmeye odaklanan bir CI/CD servisidir; Flutter projeleri için özellikle popülerdir. Hazır workflow şablonları, otomatik kod imzalama (code signing) entegrasyonları ve mağaza dağıtım adımları sayesinde mobil odaklı işleri hızlandırır. Flutter dışında native iOS/Android ve React Native projeleriyle de çalışır.

Platform, build cache, test çalıştırma ve otomatik sürüm artışı gibi mobil ihtiyaçlarını kolaylaştırır. Ücretsiz planda belirli dakika veya paralel iş sınırlamaları olabilir; özel dağıtım ve yüksek kapasite gereksinimleri için ücretli planlara bakmak gerekebilir.

Artıları

  • Mobil odaklı, Flutter için güçlü hazır şablonlar
  • Code signing ve mağaza dağıtımı adımlarında kolaylaştırıcı özellikler
  • Tarayıcı tabanlı yapılandırma arayüzü ve önceden tanımlı adımlar

Eksileri

  • Ücretsiz planda build zamanı/kota veya paralel job sınırlamaları olabilir
  • Çok büyük projeler veya özel altyapı ihtiyaçları için self-hosting alternatifi yok

Kimler için? Flutter veya mobil projelerde hızlıca işe başlamak, code signing ve mağaza dağıtımlarını kolaylaştırmak isteyen geliştiriciler için.

Bitrise: Mobil pipeline pazar yeri ve hazır entegrasyonlar

Bitrise mobil uygulamalar için geliştirilmiş workflow'lar ve çok sayıda entegrasyon sunar. Hazır adımlar (step) kütüphanesi, Play Store / App Store Connect dağıtımları, crash/analytics entegrasyonları ve mobil odaklı script adımlarıyla öne çıkar. UI üzerinden workflow tasarımı yapabilir ve özel script'ler ekleyebilirsin.

Şirketler genellikle Bitrise'i hızlı kurulum, hazır step'ler ve marketplace entegrasyonları için tercih eder. Ücretsiz plan sınırlı dakika ve paralel job ile gelir; açık kaynak projeler için farklı politikalar olabilir.

Artıları

  • Mobil odaklı adım kütüphanesi ve marketplace entegrasyonları
  • Kullanıcı dostu arayüz ve template desteği
  • Play Store / App Store dağıtım adımlarını kolaylaştırıyor

Eksileri

  • Ücretsiz kotası belirli kullanım senaryolarında yetersiz kalabilir
  • Özelleştirme için bazen script yazman gerekebilir

Kimler için? Hazır mobil workflow'ları, kolay mağaza entegrasyonlarını ve çabuk kurulum isteyen küçük takımlar için.

Jenkins: Tam kontrol isteyenler için self-hosted güç merkezi

Jenkins uzun yıllardır var olan açık kaynak bir CI sunucusudur. Plugin ekosistemi sayesinde neredeyse her türlü mobil ve server-side senaryoyu destekleyebilirsin. Kendi macOS/Windows/Linux makineni kurarak iOS ve Android derlemelerini tamamen kontrol altında tutabilirsin.

Jenkins'in esnekliği büyük projelerde avantaj sağlar, ancak kurulumu, plugin yönetimi ve güvenlik yamalarının uygulanması operasyonel iş yükü getirir. Büyük performans ve paralel build ihtiyaçlarında kendi altyapını ölçeklendirmen gerekir.

Artıları

  • Açık kaynak, sınırsız özelleştirme imkanı
  • Kendi altyapını kullanarak macOS/Android derlemelerinde tam kontrol
  • Zengin plugin ekosistemi

Eksileri

  • Kurulum ve bakım operasyonel yük getirir
  • Yeni başlayanlar için konfigürasyon karmaşık olabilir

Kimler için? Tam kontrol isteyen, kendi sunucularını yönetebilecek orta ve büyük ölçekli ekipler için.

Fastlane: Otomasyon görevlerini standartlaştır

Fastlane bir CI servisi değil, mobil uygulamalar için otomasyon ve dağıtım araç setidir. İmzalama, sürüm numarası yönetimi, ekran görüntüsü üretimi ve Play/App Store yüklemeleri gibi adımları komut haline getirir. CI sisteminin içinde fastlane komutlarını çağırarak tekrarlanabilir ve okunabilir pipeline'lar oluşturabilirsin.

Fastlane, özellikle imza yönetimi ve mağaza yüklemelerinde platforma özgü karmaşıklıkları soyutlar; bu nedenle GitHub Actions, GitLab veya Jenkins ile birlikte sık kullanılır.

Artıları

  • İmzalama, mağaza yükleme ve sürüm yönetimi adımlarını kolaylaştırır
  • Açık kaynak ve geniş eklenti desteği
  • CI bağımsız, her platformda çalıştırılabilir

Eksileri

  • Tek başına CI değildir; bir CI hizmeti ile birlikte kullanılmalı
  • Bazı mağaza işlemleri için ek sertifika/izin ayarları gerekebilir

Kimler için? CI içinde imzalama, sürüm yönetimi ve mağaza yüklemesini otomatikleştirmek isteyen mobil geliştiriciler için.

Hangisini Seçmelisin?

  • Küçük proje, GitHub kullanıyorsan: GitHub Actions
  • Self-hosting veya gizlilik önceliğin varsa: GitLab CI/CD veya Jenkins
  • Flutter odaklı hızlı kurulum istiyorsan: Codemagic
  • Hazır mobil adımlar ve marketplace arıyorsan: Bitrise
  • Tam kontrol ve plugin esnekliği arıyorsan: Jenkins
  • İmzalama ve mağaza yüklemesini standartlaştırmak istiyorsan: Fastlane

Sıkça Sorulan Sorular

Mobil projede iOS derlemek için mutlaka macOS gerekiyor mu?

Evet, App Store için resmi olarak iOS uygulamalarını derlemek ve imzalamak genellikle macOS gerektirir; bu nedenle macOS runner veya self-hosted mac makineler sıkça tercih edilir.

Ücretsiz planlar genelde yeterli olur mu?

Küçük projeler ve kişisel uygulamalar için birçok ücretsiz plan yeterli olur; ancak yoğun paralel derleme, büyük ekipler veya kurumsal ihtiyaçlarda ücretli planlara veya self-hostinge geçmek gerekebilir.

Hangi araç React Native için daha uygun?

React Native hem Codemagic hem Bitrise hem de GitHub Actions veya GitLab CI ile rahat çalışır; seçim workflow karmaşıklığına, iOS için macOS erişimine ve hazır entegrasyon tercihlerine bağlıdır.

Code signing (imza) süreçleri nasıl yönetilmeli?

Secrets veya secure variables kullanarak keystore, provisioning profile ve sertifikaları güvenli şekilde saklamalı, CI adımlarında geçici olarak erişim sağlamalısın. Fastlane bu adımları otomatikleştirmede yardımcı olur.

Emülatör/simulator çalıştırmak zor mu?

Android emülatörleri CI üzerinde çalıştırılabilir; ancak kaynak tüketimi yüksek olabilir. iOS simulator'lar macOS runner gerektirir. Hazır image'larda emulator kurulumu time-consuming olabilir, bu yüzden cache ve snapshot teknikleri hız kazandırır.

#ci-cd#mobil-geliştirme#flutter#react-native

↑↓ gezinEnter açEsc kapat