Dmitriy Kononov
Konuşalımİletişim

Haberler ve analiz

Xcode 27, Expo SDK 58 ve React Native 0.88: şirket uygulamasının güncellemesi nasıl planlanır

Xcode 27 Simulator.app'i kaldırdı, Expo SDK 58 ve React Native 0.88 iOS 27 ile iPhone Duo'ya geldi. Şirket uygulaması için bu ne demek, güncellemeyi nasıl planlıyorum.

Ekim ayının bir haftasında Apple, Xcode 27'yi ve katlanabilir iPhone Duo'yu çıkardı, React Native 0.88 sürümüyle, Expo ise SDK 58 ile geldi. Geliştirici için bu sıradan bir sonbahar döngüsü. Çalışanları ya da müşterileri için kendi uygulaması olan şirket sahibi içinse bir hatırlatma: uygulamayı yapıp unutamazsınız, yılda bir kez yeni platforma göre yeniden derlemek gerekiyor ve bunu bütçeye önceden koymakta fayda var. Yöneticinin telefonunun güncellendiği gün bunun için geç.

Ne çıktı

Expo 20 Ekim'de Xcode 27'nin Simulator.app'i nasıl kaldırıp yerine Device Hub'ı koyduğunu anlattı. Simülatörü uygulama adıyla açan her araç çalışmaz oldu, Expo CLI de onlardan biriydi. Düzeltme iki parça halinde çıktı: CLI artık Device Hub'ı hedef olarak görüyor ve gereken cihazı devices:// bağlantısıyla öne getiriyor. Ayrıca tarayıcıda paneli olan expo-device-hub eklentisi geldi: simülatör ve emülatörlerin canlı görüntüsü, dokunma ve metin girişi, CPU ve bellek grafikleri. Eklenti henüz 1.0 sürümüne ulaşmadı.

Expo 21 Ekim'de SDK 58'e geçiş rehberini yayınladı. SDK 58, iOS 27 ve React Native 0.88 desteği getiriyor, yani 0.87 ve 0.88 olmak üzere iki sürümün değişikliklerini birden. Strict TypeScript API varsayılan oldu, react-native/Libraries'ten derin import'lar artık tip hatası. React Native, InteractionManager'ı, export olarak Touchable'ı, Modal'ın animated özelliğini ve StatusBar'ın birkaç özelliğini kaldırdı. Prebuild SceneDelegate.swift üretiyor, Android'de release derlemelerinde R8 varsayılan olarak açık, yeni Expo Go ise yalnızca SDK 58'i destekliyor.

Expo 23 Ekim'de Apple'ın aynı gün çıkan ilk katlanabilir iPhone'u iPhone Duo için rehber yayınladı. Kompakt bir dış ekranı ve büyük bir iç ekranı var, sistem çubukları çoğu konumda yandaki dikey raya taşınıyor, uygulama ise Split View'da başka bir uygulamanın yanında açılabiliyor. Expo'nun tavsiyesi: navigasyonu Expo Router'daki Stack ve NativeTabs ile sisteme bırakmak, içeriği SafeAreaView ile kapatmak ve gövdenin her konumunu simülatörde kontrol etmek. SDK 58 ve Xcode 27.1 gerekiyor.

React Native 19 Ekim'de 0.88'i çıkardı; 0.83 ve 0.86'dan sonra kullanıcılar için kırıcı değişiklik içermeyen üçüncü sürüm. Olaylar artık tarayıcıdaki gibi standart W3C EventTarget üzerinden gidiyor, Text ve TextInput'a değişken fontlar geldi. iOS tarafında Apple, iOS 27 SDK'dan itibaren UIScene yaşam döngüsünü zorunlu kılıyor ve Xcode 27 ile onsuz derlenen UIKit uygulamaları açılmıyor. React Native 0.88, SceneDelegate desteğini ek olarak getirdi, AppDelegate üzerinden eski yol korunuyor.

Şirket uygulaması için bu ne anlama geliyor

Bir araç kiralama şirketi düşünelim. Araç teslim uygulaması bir buçuk yıldır çalışıyor, yöneticiler memnun, geliştirici başka bir projeyle meşgul. Sonbaharda yeni iPhone çıkıyor, çalışanların bir kısmı telefonunu yeniliyor ve uygulamayı yeni Xcode ile yeniden derlemek gerekiyor. Projede eski yaşam döngüsü ve bir buçuk yıldır dokunulmamış bağımlılıklar varsa, “yeniden derlemek” kimsenin planlamadığı bir haftalık işe dönüşüyor.

Sonuç: uygulamanın Apple ve Google'ın belirlediği yıllık bir döngüsü var ve bu döngü yeni özelliklere ihtiyacınız olup olmadığına bağlı değil. En ucuzu, değişiklikler küçükken yılda bir adım atarak bu döngüden geçmek.

Bende nasıl kurulu

2021'den beri teknik ortağı olduğum ABD'deki PDR şirketinde React Native süper uygulamasını şirketin geliştiricileriyle birlikte yapıyoruz. AppSheet'in yerini alıyor; ofis, satış ekibi ve şirket sahibi zaten kullanıyor. Uygulama TestFlight'ta yayında, App Store'a çıkış hazırlanıyor, Android için APK derleniyor. Offline first olarak kurulu: sahadaki satışçı haritada nokta işaretliyor, fotoğraf çekiyor ve bağlantı olmadan lead'i yürütüyor. Yanında müşteri portalı var: sipariş için çevrimiçi zaman çizelgesi, belgeyi parmakla imzalama ve PDF üretme, İngilizce ve İspanyolca. Bu uygulama için yığının yeni iOS ve React Native sürümlerine güncellenmesini bakıma planlı iş olarak koyuyorum.

Ekim 2024'ten beri çalıştığım Güney Afrika'daki araç kiralama şirketinde yöneticiler için iç uygulama FlutterFlow üzerinde, backend'i Firebase'de. Onu ağırlıklı olarak başka bir geliştirici yaptı, ben AmoCRM, site ve iş mantığıyla bağladım. Şu anda sistem çalışıyor, araçlar teslim ediliyor, benim tarafımdan aktif geliştirme olmadan bakım var. Oradaki platform güncellemeleri hem FlutterFlow'u hem uygulama mağazalarını ilgilendiriyor ve bu da bakımın bir parçası.

Ben ne yapardım

Bakım sözleşmesine yıllık yığın güncellemesini yazmak: SDK, bağımlılıklar, yeni Xcode ve Android için derleme. Tek seferlik geliştirmeler bende saatte yaklaşık 80 dolar, sürekli bakımı ayrı bir anlaşmayla düzenliyoruz ve platform güncellemesini ona dahil ediyorum.

Güncellemeden önce tip kontrolünü ve Expo rehberindeki kaldırılan API listesini çalıştırmak. SDK 58'de bunlar InteractionManager, Touchable, StatusBar özellikleri. Hataları mağazada değil kendi makinenizde görmek daha iyi.

Sisteme bırakılabiliyorsa kendi navigasyonunuzu JavaScript ile çizmemek. iPhone Duo'da çubuklar raya kendileri taşınıyor, bundan iOS sorumlu.

Uygulamayı yeni ekran biçimlerinde kontrol etmek: katlı ve açık Duo, Split View, iOS 27'de boyutu değiştirilebilen pencere. Xcode 27.1 ve Device Hub'daki simülatör yeter.

Uygulamanın hangi derleme imajıyla derlendiğini bilmek. Expo'da sdk-58 ve latest takma adları artık Xcode 27.1'i gösteriyor, bunu yayından önce kontrol etmekte fayda var.

İlgili içerikler

Müşteri uygulamasının ilk sürümünü rollerle ve tek bir tam senaryoyla planlamayı Müşteri portalının ilk sürümü nasıl planlanır yazısında anlattım. Alanlar: müşteri senaryonuza göre uygulama ve işletmeye bağlı müşteri ürünü. Vakalar: PDR şirketinde süper uygulama ve müşteri portalı ve Güney Afrika'da yöneticiler için uygulamalı araç kiralama. Diğer incelemelerden: işi durdurmadan yeni sisteme geçiş ve parmakla imza ve ikinci dilli müşteri portalı. Daha önce bakım maliyetini hesaba katarak mobil yığın nasıl seçilir diye yazmıştım. Bir yıldan uzun süredir kimsenin güncellemediği bir uygulamanız varsa, neyle yapıldığını ve kimin baktığını anlatın. Görevi konuşalım.