Android uygulama geliştirme uğraşına yeni başladım. Java değil de visual studio xamarin üzerinden mono ile c# ile geliştiriyorum. Androidde webview tabanlı hybrid uygulama geliştirmek sizce performans açısından mantıklı mı? Webview ile html5 ve css'in tasarım anlamında tüm nimetlerinden yararlanıp kolay bir şekilde arayüzler tasarlamak mümkün oluyor. Animasyonlu arayüzler hazırlanması da javascript library'ler ile çok daha fazla imkan sunuyor gibi. Native app'lere göre ne gibi dezavantajlarım olur? Tüm javascript libraryler(örneğin jquery) sorunsuz kullanılabiliyor mu? Başlangıç olarak native app/android designer ile başladım fakat sanki css ile daha güzel işler başarabilirmişim gibi geliyor.
Simdi yapacağın uygulama data odaklı ise aradaki farkı kimse fark etmez bile. Özellikle mobile göre optimize edilmiş css ve jsler ile. Lakin tutup fotograflara flitre uygulayacaım ve bunu clientside yapacğaım dersen orada sorun yaşayabilirsin.
Örneğin sen kullanıcıların ellerindeki ürünleri takaslayacakları bir ürün veya mini bir ilan sistemi yaptın. bunu hibrit olarak yapmanın performans kaybı önemsiz kalacaktır. Zira size multi platform geliştirme avantajı verecek aynı zamanda ios yazılımınz da hazır olmus olacak. Yine native ihtiyaclarınız oldugunda örneğin QR code okuma. bunun için Cordova pluginleri kullanırsaniz yine peformans olarak sorun olmayacaktır.
Ben bir c# developerim xamarin kullanabilirdim lakin cordova ile html css kodlamak daha pratik geldi ve bunu kullandım. Html css js biliyorken daha hızlı markete cıkmaya olanak sagladı.
Burada sunun altını çizeyim hibrit development yapacaksanız bir uygulama çatısı kullanmanızı tavsiye ederim. Jquery mobile + cordova veya ionic gibi. ionsen gibi. size en yakın gelen stack'ı seçebilirsıznız. Daha optimize edilmiş kodlar yazmanızı sağlar. Amerikayı tekrar kesfetmezsiniz. sunu da ekleyip native kod a göre reverse engineering ile yazdıgınız koda olasmaları daha kolay. Dolayısı ile önemli algoritmalarını vesaire varsa bunu zaten native ile de hibrit ile de client e göndermemelisiniz.
mahoni_38
kullanıcısına yanıt
Açıkcası hibrit uygulama açısından kastım css/html ile arayüzü tasarlamak, jquery ile geçiş animasyonları fade efektleri vs. hazırlamaktı. Çünkü yeni başlayan olarak bana mı öyle geldi bilmiyorum, sanki css native designer'dan çok daha rahat bir dizayn ortamı sunuyor gibi. Bir de uygulamayı ios'a portlarken arayüzü olduğu gibi kullanabilmek büyük bir artı. Xamarin zaten cross platform olduğu için rahatlık gibi. Js köprüsü ile örneğin butona tıklandığında uygulamanın native komutlarını çağıracağım böylece programın asıl kodları javascript olmayacak. JS sadece arayüz ve köprü olacak. Bu arada sanırım deneyimlisiniz, alakasız bir sorum daha olacak. Veritabanı içeren bir uygulamada(örn sözlük vs.) veritabanı dosyasının(örn sqlite) export/decompile edilip başkaları tarafından kopya uygulamalar yapılmasını önlemek adına ne yapılabilir? Önleme imkanı varmıdır paketleme/şifreleme vs. android platformunda uygulama resource veri güvenliği açısından bilgim yok açıkcası. Ya da sadece online olarak çalışan, sunucuyla iletişim kurması gereken bir uygulama mı hazırlasam?
quote:
Orijinalden alıntı: Umutcan
Açıkcası hibrit uygulama açısından kastım css/html ile arayüzü tasarlamak, jquery ile geçiş animasyonları fade efektleri vs. hazırlamaktı. Çünkü yeni başlayan olarak bana mı öyle geldi bilmiyorum, sanki css native designer'dan çok daha rahat bir dizayn ortamı sunuyor gibi. Bir de uygulamayı ios'a portlarken arayüzü olduğu gibi kullanabilmek büyük bir artı. Xamarin zaten cross platform olduğu için rahatlık gibi. Js köprüsü ile örneğin butona tıklandığında uygulamanın native komutlarını çağıracağım böylece programın asıl kodları javascript olmayacak. JS sadece arayüz ve köprü olacak. Bu arada sanırım deneyimlisiniz, alakasız bir sorum daha olacak. Veritabanı içeren bir uygulamada(örn sözlük vs.) veritabanı dosyasının(örn sqlite) export/decompile edilip başkaları tarafından kopya uygulamalar yapılmasını önlemek adına ne yapılabilir? Önleme imkanı varmıdır paketleme/şifreleme vs. android platformunda uygulama resource veri güvenliği açısından bilgim yok açıkcası. Ya da sadece online olarak çalışan, sunucuyla iletişim kurması gereken bir uygulama mı hazırlasam?
Kullanabilirsiniz. Performans sorunu "olmaz" lakin yapmadan da emin olamazsınız. Lakin yapmayın sıkıntı olur diyeceğimiz bir durum yok. Sadece mümkünse tavsiyem jquey değil angularjs kullanın. Neden? Jquery Dom u hani html elementlerini editleyerek calısır. siler ekler. bu performans olarak milisaniye cinsinden biraz kötü etkiliyor. Bunu angularjs ng-if vs ng-show kısmında da anlatılır.
"Olmaz" dedim cünkü performans sorunu ortaya cıkarsa yani bir yavaşlama takılma bu demektir ki orasının biraz optimize olmaya ihtiyacı var. Hemen stack veya framework suçlamaya gerek yok. bakın aşağıda vereceğim örnekte adam 1200 ms den 35 ms düşürmüş.
Nacizane fikrim jquery data uygulamaları yapmak. data ile ui atraksiyonları yapmak için çok da uygun değil. kod bir yerden sonra makarna oluyor. Jquery cok iyi bir dom yönetim kütüpanesi. eventler selectorlar. extensionlar ... Bence VueJs+ JQuery kombini bir sadece jquery kullanmaktan cok daha kolay ve temiz bir kod sağlar. VueJS siz datanızı yönetirsiniz o domu datanıza göre yönetir. falanca label yakala filanca butonu yakala diye event / selector corbasına dönmez. bir inceleyin derim.
Ama bu Jquery ile olmaz illa baska kütüpane gerek manasına da gelmiyor. Bıçak da keser makas da. Bazen makas daha iyi olur. gibi.