Kotlin'de RxSwift ve eşyordamlar - AGIMA ve GeekBrains'ten mobil geliştirmede seçmeli ders

Kotlin'de RxSwift ve eşyordamlar - AGIMA ve GeekBrains'ten mobil geliştirmede seçmeli ders

Bilgi iyidir, sadece harika. Ancak alınan verileri "pasif depolama" durumundan "aktif kullanım" durumuna aktararak kullanabilmeniz için pratik yapmak da gereklidir. Teorik eğitim ne kadar iyi olursa olsun, yine de “sahada” çalışmak gerekiyor. Yukarıdakiler, elbette yazılım geliştirme de dahil olmak üzere hemen hemen her çalışma alanı için geçerlidir.

Bu yıl, GeekBrains, çevrimiçi üniversite GeekUniversity'nin mobil geliştirme fakültesinin bir parçası olarak, ekibi profesyonel geliştiricilerden oluşan (karmaşık yüksek yüklü projeler, kurumsal portallar ve mobil uygulamalar oluştururlar, hepsi bu) etkileşimli ajans AGIMA ile çalışmaya başladı. AGIMA ve GeekBrains, mobil uygulama geliştirmenin pratik konularına derinlemesine dalmak için bir seçmeli ders oluşturdu.

Geçen gün iOS uzmanı Igor Vedeneev ve Android konusunda uzman Alexander Tizik ile konuştuk. Onlar sayesinde mobil geliştirme konusundaki seçmeli ders pratik bilgilerle zenginleştirildi RxSwift çerçevesinde özel kurs и Kotlin'deki eşyordamlar. Bu makalede geliştiriciler her alanın programcılar için öneminden bahsediyor.

Örnek olarak RxSwift kullanılarak iOS'ta reaktif programlama

Kotlin'de RxSwift ve eşyordamlar - AGIMA ve GeekBrains'ten mobil geliştirmede seçmeli ders
Seçmeli öğretmen Igor Vedeneev: “RxSwift ile uygulamanız uçacak”

Öğrenciler seçmeli derste hangi bilgileri alıyorlar?

Sadece çerçevenin yeteneklerinden bahsetmiyoruz, aynı zamanda klasik MVVM + RxSwift kombinasyonunda nasıl kullanılacağını da gösteriyoruz. Çeşitli pratik örnekler de tartışılmaktadır. Elde edilen verileri pekiştirmek için saha çalışma koşullarına mümkün olduğunca yakın bir uygulama yazıyoruz. Bu, aşağıdakileri kullanan bir müzik arama uygulaması olacak: iTunes Arama API'sı. Burada tüm En İyi Uygulamaları uygulayacağız ve ayrıca MVC paradigmasında RxSwift'i kullanmak için daha basit bir seçeneği değerlendireceğiz.

RxSwift - bir iOS programcısının neden bu çerçeveye ihtiyacı var, bir geliştiricinin hayatını nasıl kolaylaştırır?

RxSwift, olay akışları ve nesneler arasındaki bağlantılarla çalışmayı kolaylaştırır. En basit ve en bariz örnek bağlamalardır: örneğin, viewModel'deki bir değişkene yeni değerler ayarlayarak arayüzü güncelleyebilirsiniz. Böylece arayüz veri odaklı hale gelir. Ayrıca RxSwift, sistemi bildirimsel bir tarzda tanımlamanıza olanak tanır, bu da kodunuzu düzenlemenize ve okunabilirliği artırmanıza olanak tanır. Bütün bunlar uygulamaların daha verimli geliştirilmesine yardımcı olur.

Bir geliştirici için çerçeve bilgisi özgeçmişte de iyi bir artıdır, çünkü reaktif programlamayı anlamak ve özellikle RxSwift deneyimi piyasada değerlidir.

Neden diğerleri yerine bu özel çerçeveyi seçmelisiniz?

RxSwift en büyük topluluğa sahiptir. Yani, geliştiricinin karşılaştığı sorunun zaten birisi tarafından çözülmüş olma ihtimali daha yüksektir. Ayrıca kutudan çok sayıda bağlama çıkıyor. Üstelik RxSwift, ReactiveX'in bir parçasıdır. Bu, Android için bir analogun olduğu anlamına gelir, örneğin (RxJava, RxKotlin) ve atölyedeki meslektaşların bazıları iOS, diğerleri Android ile çalışmasına rağmen birbirleriyle aynı dili konuşabilirler.

Çerçeve sürekli güncelleniyor, küçük hatalar düzeltiliyor, Swift'in yeni sürümlerindeki özellikler için destek ekleniyor ve yeni bağlamalar ekleniyor. RxSwift açık kaynak olduğundan tüm değişiklikleri takip edebilirsiniz. Üstelik bunları kendiniz de eklemeniz mümkündür.

RxSwift nerede kullanılmalı?

  1. Bağlamalar. Kural olarak, kullanıcı arayüzünden, sanki veri değişikliklerine tepki veriyormuş gibi kullanıcı arayüzünü değiştirme yeteneğinden ve arayüze güncelleme zamanının geldiğini açıkça söylememesinden bahsediyoruz.
  2. Bileşenler ve işlemler arasındaki ilişki. Sadece bir örnek. Ağdan bir veri listesi almamız gerekiyor. Aslında bu o kadar da basit bir operasyon değil. Bunu yapmak için bir istek göndermeniz, yanıtı bir dizi nesneyle eşleştirmeniz, veritabanına kaydetmeniz ve kullanıcı arayüzüne göndermeniz gerekir. Kural olarak, bu operasyonların gerçekleştirilmesinden farklı bileşenler sorumludur (ilkeleri seviyoruz ve takip ediyoruz) KATI?). Elinizde RxSwift gibi bir araç olduğunda sistemin NE yapacağını, başka yerlerde NASIL yapacağını anlatmak mümkün hale geliyor. Bu sayede kodun daha iyi organizasyonu sağlanır ve okunabilirlik artar. Göreceli olarak konuşursak, kod içindekiler tablosuna ve kitabın kendisine bölünebilir.

Kotlin'deki koroutinler

Kotlin'de RxSwift ve eşyordamlar - AGIMA ve GeekBrains'ten mobil geliştirmede seçmeli ders
Seçmeli ders öğretmeni Alexander Tizik: “Modern gelişim, modern teknik araçları gerektirir”

Markalı çeyreğin bir parçası olarak GeekBrains fakültesinde neler öğretilecek?

Teori, diğer yaklaşımlarla karşılaştırmalar, saf Kotlin ve Android uygulama modelindeki pratik örnekler. Uygulamaya gelince, öğrencilere her şeyin ortak rutinlere bağlı olduğu bir uygulama gösterilecek. Gerçek şu ki çoğu uygulama tamamen eşzamansız ve paralel hesaplamadır. Ancak Kotlin eşyordamları kafa karıştırıcı, heterojen veya aşırı karmaşık ve performans gerektiren kodun tek, anlaşılması kolay bir stile indirgenmesine olanak tanıyarak doğru yürütme ve performansta fayda sağlar.

Pratik sorunları çözen ve eşyordamların nasıl çalıştığına dair derin bir bilgi olmasa bile ilk bakışta anlaşılabilen (RxJava gibi kütüphaneler hakkında söylenemeyen) eşyordamlarda deyimsel kod yazmayı öğreneceğiz. Ayrıca, MVI konseptindeki veri ambarı gibi daha karmaşık sorunları çözmek için aktör modeli gibi daha karmaşık kavramların nasıl kullanılacağını da anlayacağız.

Bu arada, bir iyi haber daha var. Seçmeli ders kaydedilirken Kotlin Coroutines kütüphanesinde sınıfın göründüğü bir güncelleme yayınlandı. Flow - türlerin analogu Flowable и Observable RxJava'dan. Güncelleme esas olarak uygulama geliştiricisinin bakış açısından eşyordamların özelliğini tamamlıyor. Doğru, hala iyileştirme için yer var: Kotlin/native'deki eşyordamların desteği sayesinde, Kotlin'de çoklu platform uygulamaları yazmak ve saf Kotlin'deki RxJava veya analog eksikliğinden muzdarip olmamak zaten mümkün olmasına rağmen, kotlin/native'deki eşyordam desteği henüz tamamlanmadı. Mesela oyuncu kavramı yok. Genel olarak Kotlin ekibinin tüm platformlarda daha karmaşık aktörleri destekleme planları var.

Kotlin Coroutines - bir Kotlin geliştiricisine nasıl yardımcı olurlar?

Eşyordamlar okunabilir, bakımı yapılabilir, güvenli, eşzamansız ve eşzamanlı kod yazmak için harika bir fırsat sağlar. Ayrıca kod tabanında halihazırda kullanılmış olabilecek diğer eşzamansız çerçeveler ve yaklaşımlar için bağdaştırıcılar da oluşturabilirsiniz.

Coroutine'lerin thread'lerden farkı nedir?

Kotlin ekibi koroutinlere hafif iş parçacıklarını çağırıyor. Ayrıca bir eşyordam bir miktar değer döndürebilir çünkü özünde bir eşyordam askıya alınmış bir hesaplamadır. Doğrudan sistem iş parçacıklarına bağlı değildir; iş parçacıkları yalnızca eşyordamları yürütür.

"Saf" Kotlin kullanılarak çözülemeyen veya çözülmesi zor olan hangi pratik problemler Coroutine kullanılarak çözülebilir?

Kullanıcı tıklamalarını işlemek, çevrimiçi olmak veya bir veritabanından güncellemelere abone olmak gibi tüm asenkron, paralel, "rekabetçi" görevler eşyordamlar kullanılarak iyi bir şekilde çözülür.

Saf Kotlin'de bu sorunlar Java'da olduğu gibi çözülür - her birinin kendi artıları ve eksileri olan binlerce çerçevenin yardımıyla, ancak hiçbirinin dil düzeyinde desteği yoktur.

Sonuç olarak, hem seçmeli derslerin (hem de ana derslerin) dış koşullardaki değişikliklere göre güncellendiğini söylemekte fayda var. Dillerde veya çerçevelerde önemli güncellemeler ortaya çıkarsa öğretmenler bunu dikkate alır ve programda değişiklik yapar. Bütün bunlar, tabiri caizse, geliştirme sürecinin nabzını tutmanıza olanak tanır.

Kaynak: habr.com

Yorum ekle