Logo tr.androidermagazine.com
Logo tr.androidermagazine.com

'Parçalanma' ile mücadele: geliştiriciler çoklu ekranları destekleme konusunda ses çıkarır

İçindekiler:

Anonim

Android çeşitli cihazlarda çalışır, yani çeşitli ekran boyutlarında ve çözünürlüklerinde de çalışır. Birçok insan buna "parçalanma" diyor. Yıllarca aynı şekilde tasarlanan ve geliştirilen ürünleri masaüstünde kullandıkları gerçeğini boşver. Anlaşılan her şey tamamen aynı değilse, "parçalanma" etiketini alır.

Farklı boyut ve yoğunluktaki ekranları kullanırken ortaya çıkan sorunları çözmenin farklı yolları vardır. Apple, iPhone için iPad'e göre tasarlanan uygulamalar için ayrı listelere sahiptir. Microsoft, büyük ekranlı cihazlar için yeni bir eko-sistem oluşturur. Android, geliştiricilere aynı uygulamanın farklı ekranlar için farklı çalışmasını sağlamak için bir yol sağlar. Her yönteme ilişkin iyi ve kötü şeyler var, ancak burada Android'e odaklanacağız.

Android'de uygulamalar, farklı boyut ekranlarının düzenini ve çözünürlüğünü ayarlayabilir. Bunların hepsi yerleşiktir, ancak uygulamanın iyi görünmesi için geliştiricilerin kodlarında bildirmeleri gereken birkaç şey vardır. Akılda tutulması gereken şey ekran boyutu ve yoğunluğunun uygulamanın görünümünü nasıl değiştireceğidir. Droid DNA, Motorola XOOM tablete göre daha yüksek çözünürlüklü bir ekrana sahip, ancak telefon ekranındaki uygulamalar için bir tablet düzeni görmek istemiyoruz.

Bir geliştiricinin, yüksek çözünürlükte keskin görünecek kadar yüksek kalitede (yüksek delilliğe dikkat etmeyecek kadar) varlıklar (görüntüler) sağlaması ve düzenini tasarlarken yoğunluktan bağımsız piksel birimleri kullandığınızdan emin olun. Bu, düğmeler ve diğer kontroller gibi şeylerin Galaxy S2 gibi düşük yoğunluklu ekranlarda gerçekten büyük veya DNA gibi yüksek yoğunluklu ekranlarda gerçekten küçük olmasını önleyen şeydir.

Kulağa karmaşık geliyor, ancak bir uygulamayı kodlarken bu şeylerin çoğu sizin için yapılır. Geliştiricinin yapması gereken, doğru bildirimleri yapmak ve herhangi bir boyutu (hem fiziksel hem de çözünürlük) veya düzeni desteklemek için doğru varlıkları sağlamaktır. Google+ uygulaması gibi birden çok düzen uygulaması bile akla gelebilecek her ekranı kapsayacak şekilde aynı kodu kullanır.

Burada geliştiricileri yargılamaya çalışmıyoruz. Uygulama yazmak zor. Android geliştiricileri, Gingerbread'in piyasaya sürülmesinden bu yana tüm vaazlarını veriyorlar, ancak ne kadar pratik? Birkaç geliştiriciden bunu sorduk, aradan sonra ne söyleyeceklerini görün.

Diğer: Google'ın Android geliştirici sitesi.

Konuyla ilgili birkaç temel soruya (küçük veya büyük) geliştiriciler sorduk.

  • Kurallara uymak ne kadar zor?
  • Kağıt üzerinde kolay görünüyor, ancak Google’ın görmediği herhangi bir özel sorun veya bölüm var mı?
  • Bu, eğer gelişme zamanını ve maliyetlerini nasıl etkiledi?
  • Paylaşmak istediğiniz konuyla ilgili başka bir şey var mı?

Soruları mümkün olduğu kadar tarafsız hale getirmeye çalıştım, bu yüzden bazı önyargıları uygulamayın. Şüphe duyduğunuzda, bilenlere soruyorsunuz, değil mi? Programlamadaki payımı paylaştım, fakat Java'da kodlama ve Android uygulamaları oluşturmak, C veya makine kodunda kod yazmaktan ve hatta Perl'den çok farklı. Bir uygulama geliştirmenin genel yöntemlerini öğrensem bile anlamadığım farklılıklar var.

Çok sayıda kişinin benim gibi olduğunu ve Android uygulamaları geliştirmenin karmaşıklıklarını bilmediğinizi hayal ediyorum. Yalnızca Android geliştiricilerinin ne dediğini görüyoruz ve seslerini kolaylaştırıyorlar. Onlar için, muhtemelen - bu şeyleri 2007'den beri sıfırdan yazıyorlar. Bakalım, onları takip edebilecek olanların ne söyleyeceğini görelim.

Joe Simpson (@kennydude) - Boid

Joe, Team Boid üyesidir ve uygulamaları tek başına yayınlar. O (ve ekibinin geri kalanı), bazı şaşırtıcı uygulamaları ortaya çıkaran Android için tutkulu bağımsız geliştiricilere harika bir örnek.

Kılavuza uymak oldukça zordur, özellikle yalın bir uygulama istiyorsanız ancak insanlar geri uyumluluk istiyorsa. En sinir bozucu şeylerden biri d.android.com/design adresinde bir şeyin neye benzediğini görmek ama bunun nasıl yapılacağına dair hiçbir şey değil.

Twitter nedeniyle GCM'yi fiziksel olarak kullanamadığınızda ve PtR kullanmak istemediğinizde zayıf bir nokta yenileniyor. Ayrıca, Google'ın uygulamaları kendi kurallarını oluşturur. Örneğin içeri aktarma bölmesini alın, Google+ bunu YouTube'dan farklı bir şekilde yapıyor (destek kütüphanesinin bunu umarım çözeceğini biliyorum).

Ayrıca, bir noktaya gelebilir ve bir şey hakkında hiçbir belge yoktur (örneğin, EdgeEffect).

Ben bir öğrenciyim, bu yüzden maliyetler bakmadığım bir şey ve evet, zaman alıyor, ama kullanıcılarınız sizi sevecek. Temel olarak, Canlı Şovlar (ADiA, Uygulama Kliniği, Ofis Saatleri) bir zorunluluktur (ne yazık ki), ancak Google'ın uygulamaları hakkında geri bildirimde bulunamamaktadır.

Boid yakında açık kaynak kodlu (yay!) Olacak ve uygulamanın kendisini Google Play'de bulabilirsiniz. Ayrıca Joe'nun tüm uygulamalarını (orada bazı mücevherler var) burada bulacaksınız.

Christophe Versieux - BeTrains - SNCB Belçika; HoloEverywhere

Christophe, BeTrains - SNCB Belguim - iyi düzenlenmiş bir uygulama ile neler yapılabileceğini gösteren muhteşem bir tasarıma sahip bir uygulama da dahil olmak üzere çok sayıda Android uygulaması geliştirdi. ABD'deki çoğu onu asla kullanmayacak olsa da (Belçika rayları için bir tren tarifesi uygulaması) sadece ne kadar iyi yapıldığını görmek için kurmaya değer. Batı Avrupa’daki insanlar bunu kesinlikle biliyor.

Ayrıca, diğer geliştiricilerin Android 2.1 ve üstü için Holo tarzı uygulamalar oluşturmak için kullanabilecekleri bir kütüphane olan HoloEverywhere'i birlikte geliştirdi. Hala Gingerbread'i çalıştıran birçok telefonla, uygulamalarını güncel tutmak isteyen geliştiriciler için gerçek bir zevktir.

Hiç zor değil. Ciddi anlamda. Zor kısım, müşteri bu kurallardan uzaklaşmayı istediğinde ortaya çıkar!

Ekranın altına sekmeler koymamı isteyen bir müşteriyi hatırlıyorum, her yerde iPhone düğmeleri, iPhone tarzı geçiş ve bu projeye ulaşmak gerçekten zordu ve bu konuda çok zaman ve para kaybettim.

Tüm bu aptalca şeyleri sorduğunda ona gerçekten kızmıştım ve tembel bir geliştirici olduğumu düşünüyordu.

Artık onunla çok fazla iletişim kuruyorum ve bu uygulamayı tamamen yeniden yazıyoruz, tüm bu gereksiz özellikleri kaldırarak ve "saf" bir Android uygulaması oluşturarak harika bir kod oluşturuyoruz. Müşteriler ve şirketler bu kuralların farkında olmalılar, kesinlikle inanıyorum.

ActionBarSherlock, HoloEverywhere (yaratıcılığım), UnifiedPreferences ve SlidingMenu gibi kütüphaneler, birkaç satırlık kodda harika bir kullanıcı deneyimi kullanmak için gerçekten kolay.

Dediğim gibi zaman ve maliyet, Google yönergeleri izleyerek en aza indirilir. Parçalar ve düzen klasörlerinin kullanımı gerçekten çok kolaydır (ve yeniden kullanmak daha önemlidir): Bir tablet uygulaması telefon düzeninden bir parça kod alır ve hiçbir şey yeniden yazılmamalıdır. Telefon uygulamasındaki küçük değişiklikler, aynı Parça kullanıldığında derhal tablet uygulamasına yansır.

Bazı şaşırtıcı projeler, her zaman Google tarafından değil, topluluk tarafından oluşturulur. Google + 'da Roman Nurik (Google), Reto Meier (Google) Juhani Lehtimäki, Jake Wharton, Taylor Ling, … gibi çok aktif olan bazı insanlar (Her zaman önemli insanları unutmaktan korkuyorum) çok eğitici. Geliştiricilerin sadece nereye bakacaklarını bilmeleri gerekir ve Android geliştirme onlar için kolay olacaktır!

BeTrains'i Google Play'de bulabilir ve Android geliştirme ile ilgileniyorsanız HoloEverywhere sitesine bir göz atmak istersiniz.

Matthew Runo - Zappos

Konuştuğumuz küçük bağımsız geliştiricilerin bazılarının aksine, Zappos'taki Matthew'den de haber aldık. Zappos bir web perakende şirketidir ve büyük olasılıkla hem web sitelerinde hem de uygulamalarında tasarım için özel bir bütçeye sahiptir. Aynı zamanda düzenli olarak satın aldığım bir şirket, ama bunun hiçbir önemi yoktu ve Matthew gönüllü olduğunda sıkça müşteri olduğumu bilmiyordu.

Zappos'ta bir perakendeci olduğumuz için, her şeyden önce kendi markamıza bağlı kalmalıyız. Tuhaf, eğlenceli ve duvardan biraz. Bununla birlikte, her ikimiz de Android tasarım kurallarına güçlü inançlıyız - ve kullanıcı arayüzünde yaptığımız her şey bu kuralların ruhundan alınmıştır. Bir yıl önce, bizim app çoğunlukla nasıl göründüğü ve çalıştığını bir iOS liman oldu. Bugün, sanırım Android'de yapabileceklerinizin bir cevheri. Mümkün olduğunca kılavuzlara uyuyoruz - ve tasarımcılarımız onlardan bir başlangıç ​​noktası olarak çalışıyor.

Tasarım yönergeleri hepsi değildir ve hepsi değildir - sonunda sonunda, daha tutarlı olmaları için android uygulamalarının tasarımını zorlamaya çalışmak için oradalar. Kullandığımız yaygın "yeni" açık kaynak kitaplıkların çoğunun kılavuzların bir parçası olarak sona erdiğini bulduk (kayan menü, kruton).

Kurallar asla bir geri çekilme olmamalıdır. Bazı şeyler - genel gezinme - uygulamanızın "yalnızca işe yaraması" için tutarlı olması gerekir. Her şey - rehberden başlayıp tasarımınızla devam edin. Bizim app BİZİM APP olmasını istiyoruz - bu yüzden sadece temel holo tema yapamayız.

Bu yıl temel olarak, uygulamamızın baştan sona yeniden yazılmasından başlayarak parçalarla çalışacağız. Son 6 ay içinde 7 "tablet desteği eklemek için çok çalıştık ve şu anda 10" desteği üzerinde çalışıyoruz. Yapılması en zor şey aygıtları test etmek, ancak bu konuda yardımcı olacak harika bir QA ekibimiz var. Ağustos ayından bu yana uygulamamızda tam zamanlı çalışan 2 kişi vardı, ondan önce 1 tam zamanlı kişi oldu.

Alt satırda, sanırım, android tasarım yönergeleri sürecimizi kolaylaştırmamıza ve böylece maliyetleri düşürmemize yardımcı oluyor. Kabul edelim ki, çoğu tasarımcı iOS'tan - design.android.com gibi harika bir kaynağa sahip olmak, onları android ekosisteminde başlatmak için harika bir yardımcıdır.

Zappos'un tasarım seçimlerinin iyi sonuç verdiğini söyleyebilirim ve karımın iddiamı pekiştiren kıyafetler, cüzdanlar ve botlarla dolu bir dolabı var. Google Play'de Android uygulamalarını inceleyin.

Josh Burton - jRemote

Josh, Android için sayısız küçük uygulama geliştirmiştir ve jRemote uygulaması (popüler jDownloader PC programının denetleyicisidir), hem telefonda hem de tablette harika görünen bir uygulama oluşturmak için mizanpajları nasıl kullanacağınıza mükemmel bir örnektir. Cihaz ekranının kullanımını en üst düzeye çıkarır ve tam olarak nasıl beklediğinizle ilgili olarak size aradığınız bilgileri verir.

Tasarım ilkelerine bağlı kalmak, en başından beri onlara bağlı kaldığınız sürece oldukça kolaydır. Tüm bir uygulama geliştirmek ve sonunda geri dönüp parçaları / tablet düzenlerini vb. Uygulamaya çalışmak zaman, çaba ve hayal kırıklığı kaybı olacak. Ancak, uygulamanızı planlıyorsanız, baştan itibaren parçaları kullanarak geliştiriyorsanız ve kaynaklarınızı tüm doğru dpi kovalar için yaratıyorsanız, bu bir esinti geliştirmeyi sağlar ve gerçekten de kuralları hakkında düşünmek için fazla zaman harcamanıza gerek yoktur. Ve eğer takılırsanız, tasarım dokümanları sadece bir tık ötenizde. Onlar harika bir kaynaktır.

Bu beni çok rahatsız ediyor, bu kadar çok cihazın tablet yerleşimi olmaması beni çok üzüyor. Uygulamanız parçaları kullanarak oluşturulduysa, bir tablet düzeni ekleme 30 dakika içinde yapılabilir. Açıkçası, bu kadar kolay.

Birçok geliştirici için test edecek tablet aygıtlarının olmadığını ve öykünücüyü kullanmanın bir ağrı olabileceğini düşünüyorum. Ancak henüz piyasaya sürülen yeni ADT araçları onu çok daha kolaylaştırıyor. Düzen düzenleyicideki çoklu yapılandırma görünümü, düzeninizin 5-6 farklı ekran boyutunda aynı anda nasıl göründüğünü görebileceğiniz anlamına gelir. Ve hızlı. Tabii ki sonunda bir emülatör / cihaz üzerinde test yapmaya ihtiyacınız olacak, ancak kesinlikle iş akışını hızlandırıyor.

jDownloader masaüstünüzde kullanmak için kullanışlı bir programdır ve jRemote onu kontrol etmenin harika bir yoluna benziyor. Başka bir şey yoksa, Google Play'den indirin ve bir uygulamanın aynı anda nasıl basit ve güzel olabileceğini görmek için bir göz atın.

Hemen hemen aynı şeyleri söyleyen birçok geliştiriciden duyduk. Hepsini listelemek için odadan yeni çıktık. Her şeyin özü, önceden planlıyorsanız, Android geliştirici yönergelerinin çoğu durumda gerçekten işe yaradığıdır. Bunu duyduğumuz için mutluyuz ve harika uygulamaların tadını çıkarmaya ve çalışkan geliştiricileri desteklemeye devam edeceğiz.