SAP, HANA Cloud Platform için attığı adımları büyütmeye devam ediyor. SAP Fiori ile mobil cihazlara bağımlı tasarımlar konusunda büyük adımlar atmıştı ve oldukça da başarılı bir SAPUI5 kütüphanesini çıkartmıştı. Web tabanlı uygulamalara sağladığı uyumla beraber sırada native mobil uygulamalar üzerinde durmaya başladılar. Bunun için başlangıç olarak da Apple ile bir anlaşma yapıldı.
Aslında bu haber ilk çıktığı andan itibaren herkes tarafından merak edilen konuların sayısı arttı. Bu durumu şu şekilde özetlemeye çalışalım; Apple ile yapılan anlaşmanın amacı aslında mobil cihazların donanım seviyesinde kontrol edilmesine ve mobil cihazların performans olarak daha iyi bir seviyede kullanılmasına zemin hazırlamaktır. Örneğin normal web tabanlı bir uygulama yapıldığı zaman mobil cihazların donanımsal özelliklerini tam istenilen seviyede kullanamıyoruz GPS, kamera veya Push-Notification gibi. Bu gibi özellikler aslında günümüzde oldukça kritik. Fiori’nin ilk çıkışında, web tarayıcılar üzerinde çalışan uygulamalar ve bunların mobil cihazlara uyarlanması gibi bir konu gündemdeydi. Ancak şu an gelinen nokta sadece bunların da yeterli olmayacağı, daha hızlı, daha verimli uygulamalarda mobil cihazları donanımsal seviyede kendi dilleriyle kontrol etmemiz gerekiyor. Bu tarz uygulamaların bizlere performans arttırması ve esneklik gibi katkıları olsa da geliştirme aşamasında maliyeti yükselten konular olduğu için her uygulamada tercih edilmeyecektir ancak bazı uygulamalar olacak ki gerçekten bu tarz bir donanımsal hakimiyete sahip olmamızın gerekeceği konuları içerecek.
Apple şu ana kadar ne yaptı?
Apple son zamanlarda Objective-C dilinden biraz daha temellenerek, iyi ve güçlü yönlerini alarak, yeni, sade ve daha basit bir yazılım dili geliştirdi ve adına da SWIFT dediler. Son 2-3 sene de yaygınlaşan standard geliştirdikleri uygulamaların bir çoğunu SWIFT ile yazmaya başladılar. Apple TV, Apple watch veya diğer iOS işletim sistemini destekleyen cihazlarda hatta MAC OSX üzerinde de çalışan bir dil. SWIFT’in oldukça esnek bir yapısı var ve güçlü bir dil. Dünya üzerinde bir çok Apple yazılımcısı SWIFT dilini kullanarak geliştirmelerine devam ediyor Objetive-C dilinin karmaşıklığından biraz daha sıyrılıp yeni bir güçle Apple karşımızda. Tabiki şunu da eklemek lazım Objective-C çok daha güçlü bir dil ancak amaçlar doğrultusunda hangi dilin kullanılacağını seçmek gerekiyor. Çok büyük yazılımlar olmadığı sürece, çok ciddi görsellere sahip oyun gibi uygulamalar yazılmayacaksa SWIFT zaman ve performans olarak daha önde görünüyor. Özellikle SAP için iş uygulamaları alanında iOS tarafında SWIFT bizler için bir numarada yer alacaktır.
Apple şimdi ne yapacak?
Apple SWIFT üzerinden native mobil kontrollerini, SAP Fiori tasarım ilkeleri çerçevesinde geliştirecek ve yazılımcılar direkt olarak SWIFT kontrolleriyle donanım seviyesinde erişim sağlarken SAP spesifik kontroller olacağı için hızlı bir şekilde uygulama tasarımlarını yapabilecekler. Arka planda tabiki model kurmak için yine ABAP, HANA XS gibi SAP’nin desteklediği dilleri kullanacağız. Verilerin kontrolleri ve takibi yine ERP katmanında gerçekleşecek. Ancak tasarım tarafında Apple’ın geliştirdiği iOS SDK‘sını kullanacağız. Normal şartlarda Apple’ın kendi native uygulamaları için kullandığı onlarca kontrol nesneleri var örneğin Loading, Toolbar, PushButton veya TableViewController vb. her iOS kullanan kullanıcının bileceği üzere. Bu native kontroller üzerinden geliştirme yapmak şu anda mümkün ancak oldukça zaman, efor ve para gerektiren bir konu. Kısacası çok daha zahmetli ve maliyetli. Ancak yeni çıkacak olan iOS SDK for SAP HCP kapsamında gelen kontroller spesifik olarak bizlerin kullanacağı iş uygulamaların ve SAP uygulamalarına özel kontroller olacak. Bu SDK tabiki sadece kontrolleri içermeyecek HANA Cloud ile entegre olacak ve bulut uygulamaları içinde yine büyük bir adım atılmış olacak. Bulut konusunda çok ciddi bir gelişim gözlendi ve iş uygulamaları dahil bir çok alanda uygulamalar bulut üzerine taşınmaya başlandı. SAP de bu konuyla ilgili adımını bence doğru bir zamanda atmış oldu.
OPENSAP iOS SDK Eğitimi
OPENSAP üzerinde uzaktan eğitiminin de açılacağı SAP tarafından duyuruldu. İlk eğitim de daha teorik ve SDK’nın nasıl olacağı, hangi platformlara ihtiyaç duyulacağı ile ilgili bilgiler verilirken ikinci eğitimde daha uygulamaya yönelik ve geliştiricilere daha somut cevaplar veren bir eğitim olacak. Zaten Apple SDK’yı henüz yayınlamadığı için herhangi bir uygulama geliştirmemiz mümkün değil. 2017 yılı içerisinde de SDK yayınlanıp eğitimlerin başlatılacağı konusunda da SAP tarafından açıklamalar geldi.
Bu süre zarfında ne yapmalıyım diye merak edenlere
Apple HCP iOS SDK’sını yayınlayana kadar önümüzde güzel bir zaman dilimi var. Kendinizi geliştirebilecek ve platformlara başlangıç/orta seviyesinde hakim olabilmeniz için gayet uygun bir süre. İsteği olan kişiler umarım bu süreyi iyi değerlendirebilirler. Herhangi bir sorunuz varsa gönderinin altında yorumla veya bana sosyal medya iletişim kanallarından ulaşıp sorabilirsiniz. Seve seve cevaplamaya çalışırım.
1. SWIFT
Öncelikle SWIFT diline tam destek verileceği için SWIFT dilini öğrenmeye başlamak gerekiyor. Kolay ve güçlü bir dil hiç çekinceniz olmasın. Apple’ın kendi sitesi üzerinden bir sürü kaynak bulunmaktadır. Hem videolar hem dökümanlar aracılığıyla SWIFT üzerinde kendinizi geliştirebilirsiniz. Bu gelişim paralelde mobil uygulamaları ve iOS mimarisini de size öğretecektir.
Kendinize basit iş uygulamaları yapmaya çalışın. Veritabanına bağlanmanıza gerek yok lokal olarak kendi yarattığınız verilerle çalışabilirsiniz örneğin verileri veritabanından almak yerine bir .TXT veya .XLS dosyasından alıp basit uygulamalar yazın. Hem SWIFT’e hakim olmaya başlarsınız hem de iOS kontrollerine çünkü yeni gelecek kontroller normal iOS kontrollerinde görülmemiş bir teknolojiyle gelmeyecek alt yapı çok benzer olacak. Bunun için bir MAC cihazına ve XCODE programına ihtiyacınız olacaktır. Detayları internetten kısa bir araştırmayla da öğrenebilirsiniz hangi platformlara ihtiyacınız olduğu konusunda fikir edinirsiniz.
2. MVC – Model-View-Controller
MVC mimarisine hakim olmak ve mantığını anlamak gerekiyor. iOS üzerinde yapılan uygulamalar genelde MVC mimarisini kullanıyor. Model-View-Controller üzerinden uygulamaları nasıl geliştireceğinizi ve mimarinin bizlere neler kazandıracağını iyi ayırt etmek gerekiyor. Bu yüzden MVC üzerine bilgilerinizi tazelemeniz gerekebilir eğer ki MVC kullanmıyorsanız. Bizler de çoğunlukla MVC kullanacağız çünkü.
3. ODATA Protokolü JSON ve XML formatları – SAP Gateway
ODATA protokolü ve SAP Gateway üzerine de araştırma yapmak ve bilgi sahibi olmak gerekecek. Çünkü SAP ile mobil uygulamanız arasında veri alışverişlerini bu protokol aracılığı ile yapmanız gerekecek. Özellike JSON ve XML dosyalarını nasıl PARSE edeceğinizi verileri nasıl okuyacağınızı ve göndereceğinizi anlamanız gerekiyor. Ezbere çalışmamak adına ve mimarileri doğru kurmak adına çok önemli bir rol oynuyor. Hatta bu konu çok geniş ve önemli olduğu için iyice uzmanlaşmak adına HTTP Request mimarisine ve verilerin nasıl yönetildiği konusuna da girebilirsiniz. Sizler için daha iyi olacaktır.
SAP üzerinde kendinize Gateway oluşturun ve ODATA ile dışarıya veriler çıkmaya çalışın. Zaten JSON dosyası oluştuğu anda SAP tarafındaki iş bitmiş olacak ondan sonrası mobil cihaza alınan JSON dosyasının uygun formatta kullanıcıya gösterilmesi olacak. Farklı yöntemlerle ODATA protokolünü kullanmaya çalışın. HANA CDS, ABAP veya direkt olarak HANA View’ler aracılığıyla SAP Gateway’i kullanmaya çalışın.
4. ABAP
ABAP konusunda kendinizi geliştirmelisiniz özellikle bu gibi platformlarla entegrasyon yapmaya başladıkça birçok şeyi BACKEND sistemde halletmeniz gerektiğini öğreneceksiniz. Uygulama mesajlarını veya loglarını yönetmek gibi kritik noktalar olacak. Standard GUI programı yazmak kadar basit olmayacak. Dış bir sisteme verileri açtığmızı düşünürsek bir çok kontrolü arka planda yürütmek ve dışarıdaki cihazın sadece bizlerin sistemden yaptığı yönlendirmelerle ilerlemesini sağlayacağız. Yani yetkilendirme kontrolleri de çok kritik olacak. O yüzden ABAP tarafında da veri modellemelerine bakmak gerekiyor. Özellikle güvenli mobil uygulamalar(Secure applications) yazmak için çok önemlidir. Arka taraftaki mimariye dikkat edilmezse uygulama için farkında olmadan bir çok açığa sahip olabilirsiniz. Sadece ABAP değil HANA XS veya Java ile de arka planı yönetmek uygulama ihtiyaçlarına göre değişir. Ancak görünen o ki çoğu uygulama ERP üzerinden döneceği için ABAP yine büyük bir rol oynayacaktır.
ABAP için sadece konu bundan ibaret değil HANA entegrasyonlarıyla gelen bir sürü konuyu da içeriyor. Örneğin HANA CDS veya AMDP(ABAP Managed Database Procedures) bu gibi konularda da kendilerinizi geliştirmeye başlamalısınız. Artık mobil uygulamalar için gerçek-zamanlı davranışlar çok önemli ve SAP gibi yüklü verilerin olduğu sistemlerde hızı sağlayabilmemiz çok önemli. Gördüğünüz gibi bir sürü katmandan geçerek bir kullanıcı veriye ulaşacak. Bu yüzden HANA’nın tüm gücünü kullanmamız gerekiyor. Klasik ABAP üzerinden bu uygulamalara ayak uydurmaya çalışırsak hata yapmış oluruz. SAP geliştirdiği tüm ürünleri bu yenilikleri birbirine bağlayarak yapıyor. Kesinlikle HANA üzerinde ABAP için çalışılması gereken çok ciddi konular var. Her ne kadar tecrübeli de olsanız yeni gelen teknolojiler olduğu için vakit ayırmanızı gerektirecektir.
Ek olarak ABAP tarafında OO-Design Patterns olarak bilinen nesne yönelimli programlama tasarım modellerini incelemenizi de öneririm. Uygulama geliştirirken düşünme şeklinize büyük bir vizyon katacaktır.