Batuhan KÖK Developer

Fastlane Nedir? Zubizu'dan Örneklerle...

Fastlane

Başlamadan; uzun süredir yazı yazmadığım için çok geriliyordum ve bunun sebebi yazı yazmaya ayıracak vaktimin olmamasındandı. Neyse ki radikal bir kararla bugün bu yazıyı yazmaya başladım 👏 Bir sonraki yazımda da vaktimi nelere harcadığımdan bahsetmeyi düşünüyorum, umarım 😊

Nedir Bu Fastlane?

Kendi tanımı ile “fastlane is the tool to release your iOS and Android app 🚀” yani “fastlane, iOS ve Android uygulamalarınızı kolayca dağıtmanızı sağlayan bir araçtır”. Burada her ne kadar Android platformuna da destek verildiğinden bahsedilsede, fastlane’in yaratıcısı Felix Krause, çoğunlukla iOS üzerinde durduklarını söylüyor (duyum 🤭). Sanırım Android tarafı toplulukta bulunan geliştiriciler tarafından desteklenmekte.

Her neyse, fastlane içinde bulundurduğu bir çok tool ile deployment sürecinizi hızlandırmayı, developer bağımlı release’leri önlemeyi ve en önemlisi de Countinuous Delivery yapmanızı sağlıyor. Ayrıca Slack entegrasyonu ile deployment durumlarını istediğiniz channel’lara ileterek süreçten herkesin haberdar olmasını sağlayabiliyorsunuz 👍

Fastlane Family (Tools)

Biraz önce de bahsettiğim gibi, fastlane’i fastlane yapan asıl olay, aşağıdaki tool’lar. Şuan da 15 civarında resmi tool bulunmakta. Bunlar zaten fastlane içinde default olarak gelmekte, dolayısı ile plugin olarak düşünülmemelidir. Fakat çeşitli nedenlerden dolayı biz Zubizu’da bu toollardan yalnızca 5-6 tanesini kullanabiliyoruz

Fastlane Tools

Önemli olduğunu düşündüğüm tool’lardan bir kaçını açıklamak isterim;

  • gym : Bu komut, mevcut iOS uygulamanızı build ederek, IPA çıktısını almaktadır.
  • scan : Bu komut, uygulamanızda yazmış olduğunuz tüm testleri koşturmaktadır.
  • snapshot : Bu komut ile tüm cihazlarda ve desteklediğiniz tüm dillerde, uygulamanızın ekran görüntülerini almaktadır.
  • deliver : Bu komut, tüm ekran görüntülerini, metadata’ları ve uygulamanızı App Store’a göndermenizi sağlamaktadır.
  • precheck : Bu yeni farkettiğim bir komut. Çok faydalı olabileceğine inanıyorum. Peki ne yapıyor? Bu komut App Store’un review rule’larına göre uygulamanızı değerlendiriyor ve yapılması gerekenleri size söylüyor. Bu sayede sürümünüzün reject yeme olasılığını elinizden geldiğince düşürmüş oluyorsunuz.

iOS TestFlight ve Crashlytics Destekliyor mu?

Fastlane’in belki de en önemli özelliklerinden biri TestFlight ve Crashlytics destekliyor olması. Bu sayede uygulamınızın deployment sürecini fastlane ile yönetmeseniz bile beta sürümlerinizi fastlane üzerinden tetikleyebilirsiniz. Örneğin Zubizu’da deployment’lar manuel olarak yapılıyor fakat beta paketlerimiz fastlane ile yönetilmekte. Ayrıca birden fazla branch’den beta çıktığımız için tüm bu karışıklıkları handle etmek oldukça rahat oluyor fastlane sayesinde.

Fastfile Nedir?

Fastfile, bir proje için oluşturulan tüm fastlane configurationları içeren bir dosyadır. Bu dosyada çeşitli “lane”ler bulunmaktadır. Örneğin en basit beta distribution için build alıp bu build’i Crashlytics’e yükleyen kodların bütünü bir “lane”dir.

Beta distribution demişken, Zubizu’da kullandığımız fastfile’ın beta paketi çıkmak için kullandığımız kısmını sizlerle paylaşmak isterim.

Not: Çeşitli kısımları kırpılmıştır.

Zubizu Fastfile

Bitirirken…

Fastlane’i projenize kurmak oldukça kolay, hemen buraya tıklayarak fastlane dökümantasyonuna ulaşabilirsiniz. Ayrıca dökümantasyon çok detaylı ve güzel hazırlanmış 👍

Fastlane, ThoughtWorks Technology Radar / Tools’da “adopt” yani “mutlaka kullanılmalı” kategorisine dahil edilmiş durumda.

Her zamanki gibi İletişim sayfasını kullanarak bana ulaşabilirsiniz.

Kolay gelsin! 🎉