Mobil uygulamanın nasıl oluşturulduğunun ve sürece ilişkin bazı kararların alınmasının anlatılması.
HackerNoon Mobil uygulaması( mevcut ve onayını çok uzun süredir bekliyor), HackerNoon kütüphanesinin tamamına erişimi artırmak amacıyla 2023'ün 4. çeyreğinde yayınlandı. Mobil uygulama, uygulamanın ana amaçlarından biri olduğu için okuyucuyu kolaylaştırıyor. Web'de yaptığımız hemen hemen her şey, kişiselleştirilmiş bir deneyim sağladığı için mobilde daha basittir ve uygulamanın ana özelliğinden istediğiniz zaman, istediğiniz yerden yararlanabilirsiniz. Bugün yayında olan Sürüm 1.9, şimdiye kadarki en büyük gelişmemizdir; bunların en önemlisi, mevcut 12 dil ve uygulama içi yazma deneyimimizdir. Dünya çapındaki yazara şerefe!
Ana Özellikler:
Okuyun - 100.000'den fazla hikayeye sahip HackerNoon kütüphanesinin tamamı mevcuttur.
Ses Oynatıcı Çalma Listesi - makaleleri dinleyin ve en sevdiğiniz hikayelerle çalma listeleri oluşturun.
Yazma (YENİ!) - Hikaye yazma ve editörlere gönderme yeteneği.
Anketler ve Yorumlar - en son teknoloji trendlerini oylayın ve tartışın.
Mobil uygulamada ayrıca günün trend hikayelerini içeren TechBeat sayfası , beğendiğiniz konulara göre seçilmiş makaleleri içeren Küratörlük sayfası, makaleleri konuya göre küratörleyen kategori / etiketli sayfalar ve daha fazlasını da görebilirsiniz. Bu 1.9 sürümüyle birlikte yakında uygulamaya çeviriler ve yazılar da ekledik, böylece uygulama daha da iyi olmaya devam ediyor.
Geliştirici açısından bakıldığında mobil uygulamaya çok ihtiyaç vardı. Piyasaya sürülmeden önce neredeyse her HackerNoon ürün toplantısında bahsedilmişti. Bazı nedenlerden dolayı birçok konuşma şunlara yol açtı:
Xy veya z yapmak için bir mobil uygulamamız olsaydı iyi olurdu.
Bir geliştirici ve zorlukları seven biri olarak kendime her zaman bir mobil uygulama geliştirmenin neden bu kadar zor olduğunu sordum. Aslında cevap düşündüğümden daha basitti.
Nasıl oldu?
Birkaç yıl önce Ionic Framework ile karşılaştığım ve bunun ilginç olduğunu düşündüğüm ancak test etmek için hiçbir kod yazmadığım ortaya çıktı. O zamanlar çerçeve yalnızca Angular ile çalışıyordu ve bu da benim daha çok bir React geliştiricisi olduğum göz önüne alındığında muhtemelen onu deneme kararımı etkiledi. O zamanlar Ionic o kadar popüler değildi ve hibrit bir uygulama oluşturma fikri pek çok insanın aklına uymuyordu. Her neyse, bir ürün toplantısında mobil uygulama hakkında konuşuyorlardı ve ben de Ionic'e bir göz atmaya karar verdim ve tahmin edin ne oldu, çerçevelerini Vue ve React'a kadar genişletmişler, ya da ben gerçekten rahatım.
Yaptığım ilk şey çerçeveyi kurmak ve hızlı bir Android uygulaması oluşturmaktı. Sürecin ne kadar kolay ve anlaşılır olmasından etkilendim. Sadece birkaç bileşeni bir kenara bırakıp bir mobil uygulamaya sahip olmak çılgınca bir fikir olsa da Ionic, iOS ve Android de dahil olmak üzere birden fazla platformda yalnızca bazı komutları çalıştırmayı ve bir uygulama derlemeyi mümkün kıldı. Çerçeve konusunda kendimi gerçekten rahat hissettim ve o anda bu zorluğun üstesinden gelebilecek kadar yeniydim. Tesadüf daha sonra, ilk HackerNoon mobil uygulamasının oluşturulmasıyla ilgili yeni bir proje gördüğümde geldi. Hemen toparlandım ve üzerinde çalışmaya başladım.
Süreç
İlk olarak Ionic'i Linux makineme kurarak başladım, yepyeni bir uygulama oluşturdum ve bazı belgelerini araştırdım. Geliştirmeye başlamak için şu sihirli komutları çalıştırın: npm install -g @ionic/cli ionic start // create ionic serve // local run Bununla oynadıktan sonra, HackerNoon web sürümündeki bileşenleri bu yeni projeye taşımaya başladım. Birkaç saat içinde birkaç sayfa oluşturdum. HackerNoon tasarımcıları ( @Devans ve @Kien ) her şeyi eşleştirerek ve uygulamaya iyi bir öz ve görünüm kazandırarak gerçekten harika bir iş çıkardılar. Çoğu, Ionic'in TypeScript'i kullanması dışında, tepkide geliştireceğiniz şekilde geliştirildi, bu onlar için iyi. Linux makinem, uygulamanın neredeyse %50'sini Android tabanlı geliştirdiğim, ancak iOS sürümünü test etmekte zorlandığım iyi bir başlangıç noktasıydı. Linux'ta Mac OS'yi sanal bir makineye kurmak, ardından XCode'u yüklemek ve ardından uygulamayı IOS'ta test etmek gibi bir çözüm vardı, ancak daha sonra gecikme ve yavaşlıkla baş edemedim. Uygulamanın ilerleyişinden emin olduktan sonra, iOS için geliştirmeye başlamak üzere MacBook Pro'mu yükseltmeye karar verdim. Şu ana kadar iyi bir karardı çünkü Linux'u hala sevmeme rağmen bana birçok düzeyde tüm platformlar için geliştirme yapmanın önemini gösterdi. Dolayısıyla yeni MacBook Pro'mla bu uygulama üzerinde çalışmak gerçekten göz açıcıydı.
Mücadeleler
Bu, üstesinden gelinmesi gereken zorluklarla dolu bir öğrenme deneyimiydi. En basit hatanın bile çözülmesi saatler sürdü. Neyse ki, bir dahaki sefere olmasın diye, her sıkıştığımda belgeliyordum. Bu projenin baş geliştiricisi olarak uygulamanın altyapısı açısından bazı zor seçimler yapmak, tüm api'yi oluşturmak ve aynı zamanda Ionic'i öğrenip alışmak zorunda kaldım. Temel zorluklardan bazıları şunlardı:
Hata ayıklama/test etme: Tüm geliştiriciler, herhangi bir seviyedeki bir uygulamayı geliştirirken test etmenin ne kadar önemli olduğunu bilir. Mobil uygulama üzerinde çalışırken ilk olarak web üzerinde geliştirmeye başladım. Aslında mobilde test yapmak için her seferinde konuşlandırmam gerektiğini düşündüm. Ionic'in mobilde değil yerel olarak test etme yöntemi olduğunu bilmediğim için biraz zaman harcadım. Bu yüzden çoğu zaman css'im veya bazı olay işleyicilerim aynı uygulama olmadığı için bozulacak. Mobil cihazlarda yerel olarak test ettikten sonra süreç daha akıcı hale geldi.
Bildirimler : Mobil uygulamada ilk çalışmaya başladığımda, bildirimler için kullanabileceğim iki ilginç eklenti gördüm; Yerel Bildirimler ve Anlık Bildirimler. Yerel bildirimler, bir arka uç sunucusuyla etkileşime girmeden uygulamada yerel olarak yönetilen bildirimlerdir. Otomatik olarak yerel bildirimlerin doğru ve daha hızlı uygulama seçeneği olduğunu düşündüm, bu yüzden oldukça kolay bir şekilde uyguladım. Ancak aradığımız şey bu değildi. Anlık bildirimler gidilecek yoldu, ancak uygulanması biraz daha zordu ve ekstra kurulum ve bir arka uç sunucusu gerektiriyordu. Biraz daha fazlasını göndermek istesek de, her gün öğlen dağ saatinde yalnızca bir bildirim göndererek işi basit tutuyoruz. Mobil uygulamanız varsa ve bildirimleri kabul ettiyseniz, HackerNoon'un günün en önemli haberi hakkında bu tür bir bildirim alıyor olmalısınız.
Çalma listesi/oynatıcı : Bu, uygulamanın ana özelliklerinden biridir. Oluşturmak keyifliydi ama birçok işlevselliğe sahip olduğu için hata ayıklamak acı vericiydi. Test sırasında her düğmenin yapması gerekeni yaptığından emin olmak biraz zaman alıyordu. Mobil cihazlarda çalışmak için birden fazla ses eklentisini denediğimden hikaye ses oynatıcısını oluşturmak tuhaftı. Karşılaştığım ana sorun, oynatıcıyı kurduğumda sesin çalmaması veya ses kalitesinin gerçekten kötü olmasıydı. Bazen ses geliştirme modunda çalışır ancak üretimde çalışmaz. Aslında işe yarayan şey yerel Ses API'siydi. Bundan hemen sonra kaynak URL'sini iletin ve işlem düğmelerini ekleyin. Çalma listesi oluşturmak için tek gereken hikayeleri veritabanına kaydetmek olduğu için çalma listesi daha az zorlayıcıydı. Çalma listesini düzenli tutmak, sesleri değiştirmek, yeniden sıralamak ve bir grup hikayeyi çalma listenize ekleyebilmek gibi işlevlerin uygulanması gerçekten harikaydı. Belki gelecekte diğer insanların ne dinlediğini görebileceğiniz halka açık çalma listelerimiz olabilir, tabii ki onların endişeleri de. İşte çalma listem şu anda nasıl görünüyor:
İyonik güncellemeler, iOS güncellemeleri ve Xcode güncellemeleri: Bence bu en sinir bozucu kısımdı, %100 çalışan gerçekten güzel bir sürümünüz olduğunda ve sonra bum çalışmıyor, yüklenmiyor veya günlüğe kaydedilmiyor Ionic üzerinde çalışan giriş formları olduğunu hatırlıyorum ancak daha sonra Ionic sürümlerini yükselttim ve giriş olayları çalışmıyordu, bu nedenle hataların arka uçta olduğunu düşünmeme neden oldu. Veya uygulamayı test ederek telefonumu güncellediğimden ve bu özelliğin artık Apple tarafından desteklenmediğinden artık safaride günlükleri göremediğimi fark ettim. Veya uygulamanın yeni bir sürümünü oluşturmaya çalışıyorum ancak xcode güncellendiğinden ve kodumda bir şeyin değiştirilmesi gerektiğinden başarısız oldum. Bunlar gerçekten sinir bozucu anlardı ve zaman alıcıydı. En azından geliştirme sırasında oldu 👍.
Android'de Google Girişi: Bu, uygulamanın hatalarından biriydi; Android kullanıcıları kelimenin tam anlamıyla google yöntemini kullanarak giriş yapamıyordu. Bu çılgın bir hataydı çünkü üretimde meydana geldi. Gerçekten basit olmasına rağmen, mobil geliştirme söz konusu olduğunda öğrenme sürecinin de bir parçasıydı. Google girişi için iki tür anahtarın gerekli olduğu ortaya çıktı; biri firebase'de ayarlanmış geliştirmede, diğeri de firebase'de kurulması gereken üretimde. Buradaki sorun, Google Play Store'un aslında geliştirme anahtarının yerini alması gereken bir üretim anahtarı üretmesidir. Bunu bilmemin hiçbir yolu yoktu ve sorunun ne olduğunu anlamaya çalışmakla saatler harcadım. Gereken tek şeyin anahtarları değiştirmek olduğunu anladığımda düzeltmem 30 saniyeden az sürdü.
Yazan: … bu gerçekten bir inişli çıkışlıydı. Asıl mesele sadece mobil ve Ionic'te çalışacak editörü bulmak ve düzenlemekti. Yaklaşık 20 farklı editör denedim ve çoğu mobilde web üzerinde mükemmel çalışırken başarısız oldum. Bazıları klavyeyi yükleyemedi, bazıları basılan harflerden farklı harfler yazdı, bazıları ise yüklenemedi. Sonunda işe yarayan bir tane bulduğumda, yazarken akşam yemeği gecikiyordu, bu yüzden gerçekten sıkıcıydı. Neyse ki, bunu başka bir editör olan QuillJS(!) ile denedim ve beklenenden daha iyi çalışıyor gibi görünüyor. Aslında bu hikayeyi yazmak için kullandığım editör bu. Bu özellik temelde yeni güncellemelerin yayınlanmasını engelledi çünkü kullanıcıların mobil uygulamada yazmasına gerçekten izin vermek istiyorduk.
Neyi beğendim?
Tüm geliştirme süreci çok harikaydı ve diğer geliştiricilere kesinlikle bir şans vermelerini öneriyorum. Uygulamayla ne kadar çok çalışırsam o kadar alıştım ve geliştirme sürecinde daha rahat oldum. Uygulamayı telefonumda görmek ve tüm sayfalarda gezinmek gerçekten tatmin ediciydi. Benim için en etkileyici özellik, HackerNoon'un organik bir parçası olan ve uygulamanın ana özelliklerinden biri olan çalma listesi/oynatıcıydı. Tamamen yeni bir şey olduğu ve mobil bildirimlerin nasıl çalıştığını görme fırsatı bulduğum için muhtemelen en çok öğrendiğim özellik anlık bildirimlerdi ve bu tür bilgiler gelecekte kesinlikle diğer özelliklere uygulanabilir.