Yeni Başlayanlar için Mobil Tavsiyeler – 1

keep-calm-the-junior-developer-is-here

Merhaba. Bu yazı dizisinde istek üzerine, mobil uygulama geliştirmeye başlayacak arkadaşlar için naçizane “mobil tavsiyeler”de bulunacağım. Bazı önerilerim platform özelinde olacakken, bazıları daha genel olacak. Lütfen eklemek istediğiniz önerileri yorum olarak yazın, kaynak daha da gelişsin. 🙂

 

Nasıl Başlayacağım?

Belki de en büyük sorun bu olsa gerek! “Neresinden başlayacağım?” Bu soruyu ikiye bölerek cevaplamak istiyorum: Android ve iOS.

how-to-start-a-charity-597x358

 

 

Android

Sıradan bir nesne tabanlı programlama dili biliyorsanız (tercihen Java, C#, C++ vs.) işiniz kolay. Sadece biraz Android ortamını ve mantığını anlamanız gerekecek. Bu da sizin gözünüzü korkutmasın, kısa sürede alışacağınıza emin olabilirsiniz 🙂 İlk etapta bir kitap satın almanızı önerebilirim. Ancak alacağınız herhangi bir “Android’e Başlangıç” kitabı size yalnızca 1-2 hafta yardımcı olacaktır. Sonrasında kitabın yüzüne bakmayacaksınız. Yine de başlangıç sürecini hızlandırmak ve size yardımcı olması açısından bir kitap önerebilirim: Merhaba Android – Pusula Yayıncılık. Kitabın yazarlarından biri GDG Ankara‘nın kurucusu Ahmet Oğuz Mermerkaya. Bu kitap Android geliştirmeye başlamanızda karşınıza çıkacak sıkıntıları büyük ölçüde azaltacaktır.Bunun haricinde Android’in resmi geliştirici sitesi olan Developer Android‘den mutlaka yardım almalısınız. Aklınızdaki tüm soruların cevapları orada profesyonel bir şekilde ele alınmış. Her özelliğin nasıl kullanılacağı detaylı bir şekilde ve örnek kodlar yardımıyla anlatılmış.

Son olarak da Android’in üstadı olarak nitelendirebileceğimiz Lars Vogel var 🙂 Kendisi adeta bir kitap şeklinde tutorial’lar hazırlıyor. Ücretsiz olarak sunduğu bu içerik yardımıyla yapmayı düşündüğünüz herhangi bir uygulamayı hiç sıkıntı çekmeden geliştirebilirsiniz.

iOS

iOS’da – kişisel görüşümdür – başlamak biraz daha zor gibi. Evet IDE’miz XCode ve görsel tasarım kısımları Android’e göre daha başarılı ancak programlama dili oldukça karmaşık. Objective-C denen Apple’a özgü bir dil kullanıyoruz. Söz dizimi alışagelmiş programlama dillerinden biraz farklı. Bildiğimiz C diline obje yapısı entegre edilmiş. Yani klasik C kodlarını da çalıştırabiliyor derleyici.Peki başlamak için hangi kaynakları kullanabilirsiniz? Öncelikle yine nesne tabanlı bir programlama dili biliyor olmanız sizin avantajınıza. Başlangıç için yine aynı mantıkta bir kitap önerebilirim: Objective-C Programlama Dili – Umuttepe Yayınları. Bu kitap aslında iOS’u değil, Objective-C programlama dilini anlatıyor yalnızca. iOS anlatan güncel ve başarılı Türkçe kitap ben göremedim ne yazık ki, eğer bir öneriniz varsa lütfen belirtin. Özrümle beraber yazıya eklerim 🙂

Bu kitap yardımıyla Objective-C hakkında başlangıç düzeyinde fikir edindikten sonra uygulama geliştirmeye başlayabilirsiniz. Ancak iOS’a uygulama geliştirebilmek için bir Mac bilgisayar ihtiyacınız var. İlk öğrenme aşamasında eğer bir Mac’iniz yoksa sanal makine yardımıyla sorunu çözebilirsiniz. İş gerçek bir uygulama yaratmaya geldiğinde mutlaka Mac edinmelisiniz!

Xcode’unuzu kurduktan sonra ilk bakmanız gereken yer mutlaka Apple’ın resmi geliştirici sitesi olmalı. Dürüst olmak gerekirse burası – özellikle 1-2 yıl önceki – Android’in geliştirici sitesinden daha kaliteli hazırlanmış. Emin olun sadece bu kaynağı kullanarak istediğiniz iOS uygulamaları geliştirebilirsiniz. Örneğin şuradaki dökümanı inceleyerek, sıfırdan bir iOS uygulaması geliştirebilirsiniz.

Ayrıca AndroidWeekly ve iOSDevWeekly sitelerine üye olmanızı şiddetle tavsiye ederim!

Not: StackOverFlow‘u söylememe gerek yok sanırım 🙂

Mobil Cihazlar Birer MacBook Pro Değiller! Ama Bulut?

mobile-cloud-computingÖzellikle daha önceden OSX, Windows ve Linux gibi masaüstü sistemlere programlar, uygulamalar yazan biriyseniz ve artık mobil dünyaya adım attıysanız, önceki hayatınızı unutun. Gigabyte’larca RAM, 8 çekirdekli 2.5 GHz i7 işlemciler ve terabyte’larca (belki artık petabyte) depolama alanınız yok. Ekran kartınız da 2+2 Gb’lık çılgın cihazlardan değil. Bundan dolayı ilk dikkat etmeniz gereken konu optimize kaynak kullanımı. Fakat an gelecek, ancak öyle bilgisayarların yapabileceği işlemleri mobil cihazda yapmak durumunda kalacaksınız. Bunun için çözüm basit: Bulut! “İnternet bağlantısı” diye üzülmeyin, emin olun kullanıcılar mobil cihazlarının şarjlarını 5 dakikada %30 düşürmenizden ziyade, internete bağlanmayı tercih edeceklerdir.

Yaklaşık 2 yıl önce mobil dünya daha farklıydı. Bir uygulama geliştirirken ne kadar internete az bağlanırsa, kullanıcılar o kadar rahatlıyordu. Ancak artık çoğu mobil cihaz internete sürekli bağlı halde. Yani eskisi gibi “uygulamam internet kullanmasın, işini lokalde yapsın” demenize gerek yok. Eğer web ve backend tecrübeniz varsa kendinize böyle bulut hizmetleri yaratabilirsiniz. Yok eğer ben web, server tarafından anlamam derseniz, bu işler için oldukça başarılı hizmetler sunan firmalar var. Size tavsiyem eğer gerçekten böyle bir iş gücünüz yoksa, hiç uğraşmadan böyle bir hizmeti kullanın.

Bu hizmetlere örnek olarak ilk “Parse” diyebilirim. Web tarafında tüm mobil işlerinizi hallediyor. Kolay kullanılabilir bir veritabanı hizmeti ve bulutta işlem yapabilmek için “Cloud Code” hizmetini sunuyor. Mobildeki 2.5(!) dev olan Android, iOS ve Windows Phone için SDK’sı olduğu gibi, Unity, JavaScript ve diğer .NET platformlarına doğrudan entegre edebiliyorsunuz. Bunların yanında tabi REST api hizmeti de alabiliyorsunuz.

Parse’ın diğer güzel özelliği de “Push Notification” imkanı sunması. Basit bir arayüzden, detaylı şekilde push’lar gönderebilirsiniz. Bildiğiniz üzere artık bu Push Notification’lar mobil uygulamaların en ilgi çekici özelliklerinden biri olmuş durumda.

Peki nedir bu servisin fiyatı? Aslında ücretsiz seçeneği var ve fazlasıyla yeterli bu seçenek. Ama isterseniz 200$ verip biraz daha fazla özellik satın alabiliyorsunuz.

Parse haricinde ise aşağıdaki hizmetleri önereceğim:

Heroku

Google AppEngine

 

Kullanıcı Deneyimi Herşeydir

Belki de bu konuda benim bir şeyler söylemem hadsizlik olabilir. Ancak bir kaç konuya değinmek istiyorum 🙂

94478eaeb416efcf09925ff64a4f3481Mobil cihazların, özellikle de akıllı mobil cihazların çıkış amacı pratik kullanımı sayesinde hayatımızı kolaylaştırmak. En basitinden artık fotoğraf makinesini çıkartıp, özel ayarını yapıp fotoğraf çekmiyoruz. Bir de bu fotoğrafı paylaşmak için bilgisayara kablo yardımıyla atıp uğraşmıyoruz. Bunun yerine tek dokunuşla fotoğraf çekip yine tek dokunuşla – hatta artık konuşarak – istediğimiz mecralarda paylaşıyoruz.

*Kaynak: http://www.mobinett.com/
*Kaynak: http://www.mobinett.com/

Burada aslında kilit nokta basitlik, işlevsellik ve görsel zenginlik. Bence bu üçünü topladığımızda kullanıcı deneyimi yani user experience (UX) ortaya çıkıyor. Bu noktada size en basit örneği vermek istiyorum. Örneğin bir mobil uygulama geliştiriyorsunuz ve uygulamanız hem iOS hem de Android platformunda çalışacak. Haliyle tek bir tasarım yaptırarak maliyeti düşürmek isteyeceksinizdir. Her ne kadar ana hatları benzese de kesinlikle aynı tasarımı kullanmak hata olacaktır. Çünkü iOS kullanan insanlarla Android kullanan insanların deneyimleri aynı değil. Ayrıca iki işletim sistemini kullanan cihazlar da aynı değil. Örneğin bir “tab bar” kullanacaksanız, bunu Android’de ekranın üstüne, iOS’da ise ekranın altına koymanız gerekiyor. Ekranın altı kolay ulaşılabilir olduğu için iOS’da ekranın altına koyulmalı. Ancak Android’de ekranın altında artık navigasyon butonları bulunduğu ve tab bar’ınızın bu navigasyon butonlarıyla karışma ihtimali olduğu için ekranın üst kısmına koymalısınız tab bar’ı.

 

Kullanıcı deneyimi konusunda tavsiyem tasarımlarınızı bu alanda uzman kişilere yaptırın. Bunun haricinde aşağıda oldukça önemli kaynaklar var. Bu kaynakları kesinlikle okumalısınız.

 

Android Design Principles

iOS Design Principles

UX Design Process – Rıza Selçuk Saydam

The Elements Of The Mobile User Experience

2 thoughts on “Yeni Başlayanlar için Mobil Tavsiyeler – 1

  1. Guzel bir yazi olmus tebrikler.
    Ben kitaplara inanmiyorum. Kitaplarin guncel olmasi imkansiz. Android de surekli her sey degisiyor. Lars Vogel inanilmaz bir sekilde hepsini update etmeyi basarabiliyor. Simdi bir de L release cikiyor. Kitaplar baya baya eski kalacak.

    1. Teşekkürler!

      Dediğim gibi aslında kitaplar yola çıktıktan sonra pek işimize yaramıyorlar. Ama yine de ilk mantığı kavrama noktasında hızlandırıcı etki gösterebiliyorlar diye düşünüyorum 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *