Bir IoT hikayesi #6 — Mobil Uygulama

thumbnail-6

Bu serinin önceki yazılarını okumadıysanız, bu yazıyı daha verimli kılabilmek için okumanızı rica ederiz:


Nesnelerin interneti kavramı ile mobil uygulamaları ayrı düşünmek pek mümkün değil. Bu kavramın kapsadığı ürünler çoğunlukla mobil uygulamadan bir sensöre ya da sensörden mobil uygulamaya bilgi akışı şeklinde çalışıyor. Kendi aralarında haberleşen sensörleri de mutlaka görüyoruz tabii ki. Hatta evimizdeki akıllı beyaz eşyalarımız, toplam enerji tüketimini minimize etmek için birbirleri ile haberleşebilir ve hangi saat aralıklarında hangi makinelerin çalışması gerektiğini zamanla öğrenebilir. Bu tip fütüristik tahminlerde bulunmak pek de zor değil. Aslında bu tahminin fütüristik olduğunu söylemek de zor. Günümüz teknolojileri ve internetten ulaşabileceğimiz temel bilgiler ile rahatlıkla geliştirebilir. Nesnelerin interneti ve uygulama alanları; her gün hızlıca gelişen yapay zeka alt dalları ile de birlikte hayal gücümüzle sınırlı durumda. Bu alanda yapılabilecek uygulamaları hayal edebileceğimiz keyifli, apayrı bir yazı bile yazılabilir :)

IoT projelerinde ağırlıklı olarak mobil uygulamaların kullanılmasının temel sebebinin şüphesiz akıllı telefon kullanımlarındaki artış olduğunu söyleyebiliriz.

2014–2020 yılları arasındaki akıllı telefon sayısı tahmini
2014–2020 yılları arasındaki akıllı telefon sayısı tahmini

Akıllı telefon kullanımları ile ilgili daha fazla istatistik paylaşmaya gerek olmadığını düşünüyorum. Bir toplantıya girdiğimizde ya da telefonumuza bakamadığımız yarım saatlik bir zaman diliminde bile telaş yapabiliyoruz. Çıktığımızda ve telefonumuza tekrar baktığımızda ise gerçek zamana yetişmeye çalışıyoruz. Evet; gerçek zaman. Akıllı telefonların yükselişi ile zamandaki gerçeklik algımız bile değişti. İçinde bulunduğumuz zamandansa sosyal ağlarda geçirdiğimiz zamanı gerçek zaman olarak algılıyor, kaçırdığımız süreyi hızlıca telefi etmeye çalışıyoruz. Akıllı telefonların ve mobil uygulamaların hayatımıza bu kadar hükmettiği zamanda, sensörlerin gelişmesi ve maliyetlerinin düşmesi ile de birlikte fiziksel nesneleri kontrol etmemiz kaçınılmazdı.

Bu yazının devamında, teknolojinin sunduğu bu fırsatlardan faydalanıp basit bir fikir ile hayat bulan Mint akıllı alarm prototipimizin basit mobil uygulamasından ve Peakode’daki mobil uygulama geliştirme süreçlerinden bahsetmek istiyorum. Bir mobil uygulamanın kullanıcılar ile temas ettiği ilk yer olan ‘tasarım’dan başlayalım.

Tasarım

Peakode’da, müşterilerimizden mobil uygulama talebi geldiğinde fikir belli aşamalardan geçiyor. Bu aşamaların bir kısmından hikayemizin Ürün başlıklı 2. yazısında bahsetmiştim.

“Konsept ve Strateji” sürecinin içerisinde “Kapsam Dökümanı” hazırlandıktan ve “Üretim Planı” çıkarıldıktan sonra üretimin ilk aşaması olan “Arayüz ve Kullanıcı Deneyimi Tasarımı” başlatılır. Tasarımı bir süreç olarak düşünürsek de ilk adımı tasarımı planlamakla geçer ve bu adıma ‘Wireframe’ denir.

Wireframe

Tasarımcımız, uygulama hakkındaki detaylarla dolu olan kapsam dökümanını okuduktan sonra ilk iş olarak bu yazılı dökümanı gözünde canlandırır, gerçek arayüz elementlerine dönüştür ve bunu kağıda aktarır. “Kağıt” kelimesini kullandım ama bu çalışmayı hem gerçekten karakalem ve kağıt ikilisiyle, hem de çevrim içi bir araç aracılığıyla bilgisayarınızda da yapabilirsiniz. Önemli olan; hayal ettiğiniz ürünü renklere, yazı tiplerine odaklanmadan ne şekilde görüneceğini taslak olarak belirlemektir. Bir ürünü tasarlamadan önce, taslağının yaratılma süreci olarak özetleyebiliriz.

Peakode olarak çok sayıda projemizin Wireframe çalışmasını Mockingbotdenilen çevrim içi yazılımla oluşturduk. Yazılımın basit göründüğüne bakmayın, çok efektif ve pratiktir. Bir mobil uygulama stüdyosu olarak çok sayıda araç deneyip çöpe attık ve bu aracı uzun dönem kullandığımızı söyleyebilirim. Şiddetle öneririz.

Mint bir şirket içi projesi olduğundan zaman kazanmak adına Wireframe sürecini atladık ve hızlıca tasarım yapmaya koyulduk.

Arayüz Tasarımı

“Adobe Experience Design” beta sürümü ile Mint arayüzlerini tasarlarken.

Wireframe hazırlandıktan ve müşterimizden onayı aldıktan sonra arayüzü tasarlamaya başlarız. Wireframe sürecinde ekranlarda kullanılacak olan arayüz elementleri belirlendiğini söylemiştik. Tüm bu elementlerin stilleri, renkler, yazı tipleri ve hatta uygulama ikonu bu süreçte tasarlanır. Wireframe’in çizilmediği tasarım süreçleri çok sayıda revizyona sebep olabilir. Revizyon tasarımcılar için baş belasıdır :) İyi hazırlanmış bir kapsam dökümanı ardından iyi çizilmiş bir wireframe varsa ve onay sürecinden geçiyorsa, minimum revizyon alarak ilerleyebileceğinizden emin olabilirsiniz.

Tasarım sürecinde wireframe çizilmesinin bir diğer önemli yanı da, sürecin başlangıcından beri kullanıcı deneyimi destekli çalışmanızı sağlamasıdır. Biz Peakode’da her ne kadar kullanıcı deneyimini ön planda tutsak da aslında bu, ayrı bir profesyonellik gerektiren ve ciddiyetle ele alınması gereken bir süreç. Bu işi layıkıyla yapan sevgili dostlarımız ve iş ortağımız SHERPA ekibinin kıymetli içeriklerinin yer aldığı SHERPA Blog’dan öğrenilecek çok şey var, mutlaka göz atmalısınız.

Mobil Uygulama Geliştirme

Evleri (aileleri) ve iş yerlerini hedefleyen Mint mobil uygulaması, temelde aşağıdaki görevlere odaklanacaktı:

1. Mint sensörlerinin kurulmasına yardımcı olmak

Hub’ın kablosuz ağa tanıtılması, sensörlerin belirlenmesi/adlandırılması ve ayarlarının yapılması.

2. Diğer üyeleri giriş ve çıkışlardan haberdar etmek

Pencelere ve/veya kapılara yerleştirilen Mint sensörleri, açılma ve kapanma aksiyonlarını algılayabiliyor, Hub’a gönderiyor ve Hub da ‘cloud’ üzerinden mobil cihazlarımıza bildirim gönderebiliyor olacaktı.

3. Beacon teknolojisi ile giriş ve çıkışları kimlerin, ne zaman yaptığını görüntülemek

Mint servisine kayıtlı her bir akıllı telefon, aile ya da iş yeri ağlarına göre gruplanıyor. Ağlar içerisinde yapılan aksiyonun giriş mi çıkış mı olduğunu da alabildiğimizde göre “identification” yapmayı hedefledik.

4. Sensör ve Hub’ın satın alınmasına gerek kalmadan da yalnızca mobil uygulama ile fayda sağlayabilmek

Açıkçası bu benim en önemli olduğunu düşündüğüm maddeydi. Bu görev ile Mint’in hem ücretsiz olarak fayda sağlamasına yardımcı olacak, hem de bir satış kanalı yaratacaktık. Potansiyel müşterilerimizin Mint sensörlerini satın almasına gerek kalmadan ilgili konuma girerken “check-in” yapmalarını ve diğer üyelere haber verilmesini sağlayacaktık. Böylece kullanıcılar, sensörün sağlayacağı faydayı, kendileri “check-in” butonuna dokunarak sağlayacaktı: “Eve gelince check-in yapmak.”. Yaratacağımız bir diğer fayda da potansiyel müşterilerimizin Mint sensörlerinin özelliklerini deneyimlemeleri ve böylece hayatlarına katacak değerleri keşfetmesini sağlamaktı. Bu inanılmaz bir satış kanalıydı!

5. “Acil yardım butonu” ile doğrudan ilgili güvenlik birimlerinin aranmasını sağlamak

Bu da sensör bağımsız faydalanılabilecek bir özellikti. Kurulu sensörlerde izinsiz giriş gerçekleştiğinde otomatik arama önerisi sunacak olan Mint uygulaması, sensör olmadığında da kullanıcının hızlıca ilgili birimleri arayabilmesini sağlayacaktı.

6. Mint sensörleri ve yeni ürünleri hakkında bilgiler vermek

4. maddede de vurguladığım gibi mobil uygulama; henüz sensör satın almayan kullanıcılar için ciddi bir satış kanalı yaratabilirdi. Kullanıcının hareketlerini gözlemleyip, zamanla öğrenip ürün önerileri sunan bir mobil uygulama düşünün. Uzun vadede planlarımızda Mint sensör ağı altında akıllı kamera, hareket sensörü gibi ürünler vardı ve bu ürünleri üretip üretmeme kararımızı vermemizde etkili olabilecek bir yapay zeka geliştirebilirdik.

Bu özellik ve çok daha fazlası hayal edilebilirdi, zamanla geliştirilebilirdi. Biz zaman kısıtımızdan ve yoğun ticari iş süreçlerimizden dolayı çok daha basit halini geliştirdik: önceden tanımlanan tek bir sensör ile giriş ve çıkışları listeleyen ve bildiren bir mobil uygulama!

iOS Uygulaması

Mobil uygulamamızı yalnızca iOS platformu için geliştirdik. Prototip aşamasında tek platform için geliştirmemiz başlangıçta yeterliydi. Peakode’da geliştirdiğimiz iOS uygulamalarında eğer sıfırdan bir proje yaratıyorsak ve eğer müşterilerimizden herhangi bir özel talep gelmiyorsa Swift dilini tercih ediyoruz. Daha doğrusu Swift versiyon 2.0 çıkana kadar tüm projelerimizi Objective C ile geliştiriyorduk. Bunun sebebi; Swift 1.0’ın yeterince stabil olmamasıydı, Apple devamlı geliştiriyordu. Hatta Swift 3.0’a kadar bence çok stabil değildi fakat biz 2.0’da iken geçmek durumundaydık çünkü:

  • Swift, Objective C’ye göre daha kolay bir dil (Ben uzun zamandır aktif olarak geliştirme yapmadığım için hala eski “Objective C” fanatiğiyim. Hatta Swift ilk çıktığında, farklı bir dil ile iOS geliştirilebildiğini görmek çok garip geliyordu.)
  • Swift dilini bilen geliştirici bulmak, Objective C dilini bilen geliştirici bulmaktan daha kolay. Swift’in kolay bir dil olduğunu duyan ve iOS’e meraklı olan çok sayıda geliştiricinin iOS geliştirmeye akın ettiğini bizzat gördüm. Sıfırdan iOS geliştirmeye başlayan herkes de Swift ile geliştirmeyi öğrendiği için Peakode olarak bizim de işe alabileceğimiz geliştirici aday sayısını doğal olarak arttırdı.
  • Swift dili ile web servisler geliştirebiliyorsunuz. Belki Objective C’nin, iOS geliştirici adaylarını uzak tutma sebeplerinden biri de tek platform için dil öğrenme mecburiyetiydi. Fakat artık Swift’i “backend”de de koşturabiliyorsunuz.
  • Her Objective C geliştiricinin korkusu da tabii ki de, Apple’ın uzun vadede desteği çekecek olması tahmini. Bu uzun yıllar sonra gerçekleşebilir ancak Swift’in bu kadar öne sürülmesindeki temel isteklerden birinin de bu olabileceğini tahmin ediyoruz.

Uzun lafın kısası, uygulamamızı Swift dili ile pratik bir şekilde geliştirdik. iOS ile ilgili daha teknik konuları konuşmak üzere geliştirici ekibimizle istediğiniz zaman iletişime geçebilir; merak ettiğiniz konuları, oluşumuna katkıda bulunduğumuz topluluk olan Bursa I/O aracılığıyla sorabilirsiniz.

Peakode ekibine iOS geliştirici olarak başvurmak isterseniz ilanımız hala açık! Şu link aracılığıyla başvurabilirsiniz.

Yukarıda da bahsettiğim gibi, geliştirdiğimiz Mint iOS uygulamasının yetenekleri oldukça kısıtlıydı. Yalnızca giriş-çıkışları bildirim olarak alıp, listeliyordu. Bu basit prototipin kaynak kodlarına şu link aracılığıyla ulaşabilirsiniz.

“Mobil Uygulama” başlığı altında akıllı telefonlar, mobil uygulama arayüz tasarımı ve iOS geliştirme hakkında konuştuk. Bu not defterinde çok yakında iOS ve Android geliştirme hakkında çok daha spesifik konularla karşınızda olacağız, takipte kalın!

Serinin sıradaki ve son yazısına aşağıdaki link ile ulaşabilirsiniz:

Bir IoT hikayesi #7 — Final

Gökhan Gültekin

Peakode | Kurucu Ortak

 

Leave a Reply

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