Herkes için Oluşturma: React Native ile Uygulama Yeniden Oluşturma
Yazar: DeHub Team — 2021-07-02
2021 'in üçüncü çeyreğinde DeHub uygulamasını React Native'de sıfırdan yeniden oluşturmaya başladık.
Çalışan bir başvuruyu yeniden yazmaya karar vermek, kimsenin hoşuna giden bir karar değildir. Beta canlıydı, kullanıcıları vardı ve yeniden yapılandırmaya harcanan her hafta, kullanıcıların istediği özelliklere harcanmayan bir haftaydı. Yine de yaptık ve bu, o dönemden beri hiç tekrar ziyaret etmediğimiz birkaç büyük çağrıdan biri.
İlk uygulamanın nesi vardı?
Beta, bir soruyu (insanlar bunu hiç kullanacak mı?) yanıtlamak için oluşturuldu ve yanıtladı. Yapamadığı şey büyümekti. İki platforma nakliye, iki kod tabanını korumak anlamına geliyordu, bu da pratikte bir platformun sessizce geride kalması ve her özelliğin olması gerekenin yaklaşık iki katına mal olması anlamına geliyordu.
Bir ekip için boyutumuz teknik bir rahatsızlık değildir. Ürünün ne kadar hızlı hareket edebileceğine dair bir başlıktır.
Neden React Native
Dürüst sebep, ekip kaldıracıdır. React Native, küçük bir grubun bir kod tabanından iOS ve Android'e iki kez tamamen yerel olmadan ve video ve canlı içerik etrafında oluşturulmuş bir uygulama için ölümcül olabilecek sarılmış bir web görünümünden ödün vermeden gönderim yapmasına izin verdi.
Bu aynı zamanda mobil uygulamanın ve web uygulamasının zihinsel bir modeli, bir bileşen kelime dağarcığını ve birçok durumda gerçek mantığı paylaşabileceği anlamına geliyordu. Dört yıl sonra DeHub, paralel olarak sürdürülen bir React web uygulaması ve bir React Native mobil uygulaması çalıştırıyor ve 2021 'deki cevap iki yerel yeniden yazma olsaydı mümkün olmayacak bir hızda özellikler arasında geçiş yapıyor.
Beklenenden daha zor olan kısımlar
Hiç kimse bunu sürtünmesiz bir seçim olarak okumamalıdır:
- Video, soyutlamanın sızdığı yerdir. Oynatma, arka plan sesi ve canlı akış, çerçevenin vaatlerine bakılmaksızın tam olarak yerel modüllerde bulunduğunuz alanlardır.
- Cüzdan entegrasyonu devam eden vergiydi. Mobil cüzdan bağlantısı, uygulamanın diğer bölümlerinden daha fazla kez yeniden çözüldü ve yeni kullanıcıların oyalandığı en yaygın yer olmaya devam ediyor.
- Yeniden yazma her zaman daha uzun sürer. Eski uygulamanın yaptığı ve kimsenin yazmadığı şeylerin listesi aşağı sadece bunları kaldırarak keşfedilir.
Neden hala doğruydu
Yeniden yapılanma, uygulamanın daha sonra gelen her şeyden sağ kurtulmasının nedenidir. 2022 'nin ilk çeyreğinde arcade piyasaya sürüldüğünde, stream app o yaz, tüm ekosistem 2023' te tek bir uygulamaya çekildiğinde — bunların hiçbiri betaya bağlanma durumu değildi. Ağırlık almak için kasıtlı olarak inşa edilmiş bir temel üzerine indiler.
Bundan çıkardığımız ders “erken yeniden yazma” değildir. Mimarinizin ekibe koyduğu belirli tavanı adlandırabildiğiniz anda, başlatmış olsanız da olmasanız da yeniden yazma için zaten ödeme yapıyorsunuz demektir.
Biri nasıl hayatta kalır
İki şey bu yeniden yazma bitişini oyalamaktan ziyade yaptı ve her ikisi de belirtmeye değer çünkü çoğu yeniden yazım oyalar.
Eski uygulama çalışmaya devam etti. Değiştirme işlemi yapılırken mevcut kullanıcılara gönderimi durdurmadık. Bu, zaman çizelgesini uzatır ve genellikle yeniden yazılanların öldüğü aceleye getirilmiş bir kesintiye neden olan baskıyı ortadan kaldırır.
Kapsam ürün değil mimariydi. Yeniden oluştururken bir özelliği geliştirmek için yapılan her istek reddedildi. Aynı anda bir yeniden tasarım olan bir yeniden yazmanın başarısız olmak için iki yolu vardır ve hangisinin gerçekleştiğini anlamanın hiçbir yolu yoktur. Arayüz çalışması, % 200 arka uç iyileştirmesinin yanı sıra tam revizyon olarak düzgün bir şekilde sevk edildiği 2024 yılına kadar bekledi.
DeHub'ı aç