oracle-jdeveloper-logo

MAF – Oracle Mobile Application Framework ile İlk Uygulama

Bir önceki MAF yazımda kurulumları tamamlayıp ilk uygulama aşamsına gelmiştik. Bu yazıda basit bir uygulama oluşturup bunun simulator de görüntülenmesini sağlaycağız. İlk olarak uygulama oluşturmadan önce uygulamayı test edeceğimiz simulatorlerin jdeveloper ile bağlantılarını yapacağız.

Jdeveloper açıldıktan sonra JDeveloper altında Preferences bölümüne girelim.

gallerygallery

ilk_uygulama1

Burada açılan pencerede sol bölümde yer alan Mobile Application Framework bölümünü açalım.

Screen Shot 2016-08-22 at 13.59.29

Burayı açtığımza 3 platform içinde sdk larını tanıtabileceğimiz ekranlar karşımıza gelecektir. Buradan bizden istenilen sdk larla ilgili dosya yollarını girelim.

Screen Shot 2016-08-22 at 14.04.28

Bilgisayarınız daha önceden Android Studio ve SDK ları yüklü ise uygulama bu uzantıları siz hiçbir şey yapmadan bulacaktır. Bu özelliği hoşuma giden özelliklerinden biri oldu. Bu şekilde konfigurasyon kolaylığı sağladı. Kurulu değilse sitesinden kısa sürede kurabilirsiniz. Aynı şekilde XCode kurulu ise yine ios için yüklü olan sdk larıda görmektedir.

Bende android ve ios sdk ları mevcut olduğu için ikisininde yer aldığı dosya uzantılarını girdim. Eğer uzantılar ile ilgili bir hata olursa bu alanı kırmızı olarak size belirtecektir. Windows Platform için ayarlamalar yapmak isteğimde olmadığını bana bu şekilde ikaz etti.

Bu alanları doldurup işlemleri tamamladıysak bir uygulama oluşturup bunu simulatore görüntüleyelim.

Öncelikle File>Application diyelim.

Screen Shot 2016-08-22 at 14.35.32

Açılan pencereden Application>Mobile Application Framework Application seçelim ve ilerleyelim.

Screen Shot 2016-08-22 at 14.38.11

Screen Shot 2016-08-22 at 14.37.09

Burada uygulamaya isim verelim ve next next işlemlerimiz ile bu aşamaları tamamlayalım.

Screen Shot 2016-08-22 at 14.41.48

Açılan pencerede bizi hiç bir ayar yapılamamış maf-features.xml ekranı karşılayacaktır. Bu ekranda ilk ekranımızı oluşturup bazı ayarlar yapacağız.

Screen Shot 2016-08-22 at 14.42.30

Burada + simgesine tıklayalım ve oluşturacağımız sayfan için bir isim verelim ve ok diyelim.

Screen Shot 2016-08-22 at 14.44.04

Daha sonra hemen altında yer alan sekmelerden "Content" sekmesine tıklayalım. Burada simgesinden bir content oluşturalım ve ok diyelim. Ekledikten sonra bu Content in Type sekmesinden ayarı MAF Task Flow yapalım. bu ayarı yaptığımız anda altta yer alan bölüm kırmızı olacaktır. Bizden kullanacağınız İş akışını istemektedir. Bunun için sekmesine tıklıyoruz ve aşağıdaki gibi task flow oluşturuyoruz.

Screen Shot 2016-08-22 at 14.44.19

Karşımıza boş bir sayfa gelecektir. Burası uygulamanın ilk açılacağı ekrandan tutun yapılacak tüm yönlendirmelerin yer aldığı iş akış ekranıdır.

Screen Shot 2016-08-22 at 14.57.06

Burada sağ tarafta yer alan Companents bölümünden öncelikle bir View seçip sürekliyip boş ekrana bırakıyoruz. buna bir isim verebilrisiniz ben anasayfa dedim. Dikkat ederseniz üzerinde bir pembe işaret yer almaktadır. Bu view in bir arayüze sahip olmadığını göstermektedir. Bunun için üstine çift tıklayarak bir arayüz oluşturacağız.

Screen Shot 2016-08-22 at 15.00.47

Burada isterseniz bir template seçebilirsiniz. Ben Use a Quick Start Layout bölümünden "split" adlı template seçenerek devam ediyorum. Burayıda ok diyerek geçiyoruz ve tebrikler ilk sayfanızı oluşturdunuz.

Screen Shot 2016-08-22 at 15.02.58

Burada ilk Source ekranı karşınıza gelecektir. Burada xml yapısında ekran tasarım kodları yer almaktadır. Ön izleme için altta yer alan Preview sekmesi ile görüntüleyebilirsiniz. Ekranın üstünde yer alan bölümde ise farklı platformlar için önizleme yapabileceğiniz bir imkan sağlamaktadır.

Uygulamamızı çalıştırmadan önce hangi ortamda kullanacaksak o ortam için deploy ediyoruz. Ben ios da denemek için Application>Deploy sekmesinden iOS için deploy işlemini başlatacağım. 

Screen Shot 2016-08-22 at 15.05.14

Screen Shot 2016-08-22 at 15.05.40

Açılan ekranda ne için deploy edeceğimizi seçiyoruz. Burada Simulator için, bir cihaza yüklemek için ya da markette yayınlamaya hazır hale getirecek paketleme işleme olarak 3 farklı seçenek bulunmaktadır. Burada simulator için diyerek ilerliyoruz ve tamamlanmasını bekliyoruz.

Screen Shot 2016-08-22 at 15.59.27

Bu işlemin ardından tekrar Application > Deploy dediğimizde karşımıza "iOS1 to iOS Simulator" yazısına benzer bir seçenek gelecektir. Bu işlem uygulamamızın ios simulatorde çalışması için deploy edildiğini göstermektedir.

Burada default ayarlar kullanılmaktadır. Deploy ayarlarınızı kendiniz değiştirmek istiyorsanız: Application > Deploy > New Deployment Profile diyerek ayarlar ekranına ulaşıyoruz.

Screen Shot 2016-08-23 at 14.54.44

İlk olarak bize hangi platform için oluşturmak isteğimizi soruyor. Burada Profile Type bölümünde "MAF for iOS" diyorum. Siz Android için yapmak isterseniz Android deçmelisiniz. Deployment Profile Name bölümünde bir isim isim istiyor kendi önerdiği ismi ile Ok seçeneği ile geçiyoruz. Screen Shot 2016-08-23 at 14.52.40Açılan pencerede iOS Options sekmesine tıkladığımızda aşağıdaki ekran karşımıza gelcektir.Screen Shot 2016-08-23 at 14.53.34Burada bizden application id ve name istemektedir. Bu isimler uygulamamızın ismi olacaktır. id kısmı ise markette yayınlanırken unit bir id olmasını sağlayacaktır. Bu id genelde com ile başlar ardından firma adı ardından uygulama ismi ile devam eden bir id dir. Burada com.resuldolaner.ilkuygulamam olarak ilerleyeceğim. Dikkat ederseniz yukarıda bu alan kırmızı ama aşağıdaki ekranda değil. Burada yazdığım ismi sevmediğinden kızardı. Çünkü uygulama ismi ve id "_,*, " gibi noktalama işaretleri ile oluşturulamaz. Düzeltip geçiyorum.Screen Shot 2016-08-23 at 14.54.21

Burada ayrıca iOS versiyonun minimum çalışma versiyonunu, çalıştırmaya başladığımızda hangi simulator de başlayacağı ve hangi cihaz (iphone yada ipad) için olacağı gibi seçenekler yer almaktadır. Bu kısımda Simulator seçeğinden iPhone 5 ,5s, 6 … gibi cihazları seçip görüntüleyebilirsiniz.

Screen Shot 2016-08-23 at 15.13.31Bu kısmıda tamamladıktan sonra Application>Deploy altında oluşturduğumuz iOS2 Profilini göreceksiniz. Tekrar iOS2 için Deploy edip, ardından "iOS2 to iOS Simulator" seçeneği ile uygulamamızı simulator e gönderebiliriz.Screen Shot 2016-08-23 at 14.56.21

Ve evreka diyoruz ilk görüntüyü alıyoruz.

Simulator Screen Shot 23 Aug 2016 14.56.46Biz ilk sayfa oluştururken Split template ini seçtiğmiz için gördüğünüz gibi yandan açılır bir slider menü ve içerik sayfası ile biz birşey yapmadan kendi oluşturdu. Burada Source bölümünden ufak değişiklikler yapıp çalıştırdığınızda aşağıdaki gibi küçük bir kurumsal uygulamayı andırır bir görüntü karşımıza öıkacaktır. Buraya kadar hala kod yazmadan ufak ayarlamalar ile ilerleyip bu noktaya kadar geldik. Bundan sonra keşiflere devam edeceğiz. 

Simulator Screen Shot 23 Aug 2016 15.02.07

 

 

oracle-jdeveloper-logo

MAF – Oracle Mobile Application Framework

MAF(Mobile Aplication Framework) Oracle'ın iOS, Andorid ve Windows Phone işletim sistemleri için tek kaynaktan uygulama geliştirme imkanı sağlayan bir geliştirme yapısıdır. Bu yapı için yine Oracle'ın uygulama geliştirme ortamı sağlayan yazılım aracı jdeveloper kullanılmaktadır. Jdeveloper konsol, swing ve web uygulamaları geliştirmek, web servisleri yazmak, Oracle veritabanı bağlantılı uygulamalar hazırlamak, yazılan kodun hemen debug edilmesi ve çalıştırılmasını olanaklı sağlayan bir geliştirme aracıdır. Bu araç üzerine kurulan MAF sayesinde java, html ve javascript tabanlı uygulamaları 3 platform için geliştirmek mümkündür. Daha çok az kod yazmaya ve sürükle bırak ile hızlı uygulama geliştirmeyi sağlamaktadır. Uygulamaların çalışmalarını görüntülemek için kendine ait bir emülatorü bulunmamaktadır. Bilgisayarda kurulu olan Android sdk, iOS sdk yada wPhone sdk lar ile hızlı bir şekilde ayarlamalar yapıp, uygulamaları bu emülatorde hızlı bir şekilde görüntüleyebilirsiniz. Ben bu Framework ü Mac OS üzerinden deneyimledim. Deneyimlemeden önce bilgisayarda Android studio ve Xcode kullandığım için hali hazırda SDK larım kuruluydu. Ufak bir ayarlama ile iki sdk ya jdevelopor ı bağladım ve deneme için geliştirdiğim uygulamayı hem ios a hemde android emultore deploy edebildim. Bu kısımları sonraki paylaşımımda anlatacağım için oraya bırakıyorum.

Kurulum tarafına gelecek olursak, öncelikle Java Development Kit (JDK) nın kurulması gerekiyor.  ben Mac Os için olan 1.8 verisyonunu kurdum.

Daha sonra geliştirme ortamı için Oracle JDeveloper 12c nin kurulması gerekiyor. Windows için olan ve MacOS için olan iki dosyadan oluşan toplamda 2.1 GB lık bir dosyadır. Bu dosyayı indirirken sizden oracle hesabınız ile login olmanızı isteyecektir. Yoksa kısa sürede oluşturup işleme devam edebilirsiniz. 

Buradaki Oracle'ın tüm uygulamalarını denemek, bu uygulamalar ile geliştirme yapmak, ticari olmadığı sürece ücretsizdir. Sizden herhangibir ücret ve süreli kullanım istememektedir. Gönül rahatlığı ile kurcalayabilirsiniz.

Önemli not: Oracle JDeveloper 12c indirirken sakın son sürümünü indirmeyin. Şu an için en so 12.2.1.1 versiyonu yayında ama sizin bir önceki 12.2.1.0 versiyonunu indirmeni gerekmektedir. Çünkü MAF kurulumunda bu sorun karşınıza çıkacaktır.  Oracle da kullanıcılarına araçlarının bir önceki versiyonlarını kurmalarını önermektedir. Önce versiyon çıkartıp eklentikerini daha sonra çıkarmaktadır. İndireceğiniz versiyonun maf versiyonu olup olmadığını buradaki Details for Mobile Application Framework başlığı altından kontrol edebilirsiniz.

Windows'a kurulumda iki dosyayı aynı yere çıkartıp kurulumu başlatabilirsiniz.

MacOS için ise dosyaları indirdikten sonra Terminal üzerinden kurulumu başlatalısınız. Bunun için;

  • Önce terminali açınız.
  • Daha "java -jar dosyanın_yolu / dosyanın_adı" nı girerek kurulumu başlatınız.
  • Dosyanın yolu için dosya üzerine sağ tıklayıp "get info" dedğinizde çıkan pencerede "where" bölümündeki yolu kullanabilirsinz. Bendeki şekli "java -jar  /Users/resuldolaner/Downloads/jdev_suite_122100.jar"
  • bu kodu yazıp entere bastıktan sonra kurulum işleminin başlaması için bekliyoruz. 

Karşımıza gelen kurulum ekranında ekstra birşey yapmadan klasik next next işlemi ile kuruluma tamamlıyoruz ve jdeveloper açılış ekranı karşımıza geliyor.
Screen Shot 2016-08-22 at 12.54.51

Buradan Studio Developer olan seçenek ile jdeveloper ı açıyoruz.

Screen Shot 2016-08-22 at 12.55.01 Screen Shot 2016-08-22 at 12.55.40Açılan uygulamada "Help" sekmesin altında yer alana "Check for Updates" sekmesini tıklıyoruz.
Screen Shot 2016-08-22 at 12.56.04

Karşımıza gelen ekrandakiler seçili olarak next diyoruz.

Screen Shot 2016-08-22 at 12.58.41

Açılan eklentiler arasından Mobile altındaki Mobile Application Framework ü seçiyoruz ve kurulumu başlatıyoruz. Kurulum tamamlandıktan sonra jdeveloper ı yeniden başlatıyoruz.

Uygulama açıldıktan sonra MAF ın başarılı kurulduğuna bakalım.

Screen Shot 2016-08-22 at 14.35.32Uygulama açıldıktan sonra File>New>Applicaton girelim.

Screen Shot 2016-08-22 at 14.38.11

Application bölümünde Mobile Application Framework Application yazısını gördüyseniz işlem tamamdır. Buradan yeni uygulama oluşturarak devam edeceğiz. Bir sonraki yazımda yeni uygulama oluşturma, Android ve ios için similator oluşturma bağlantılarını, deploy etme gibi olaylara değineceğim.

Daha kapsamlı bilgi, diğer platformlar ve işletim sistemlerine kurulumlarla ilgili dokümantasyon için Oracle sitesine göz atabilirsiniz. 

 

 

1355406676_android

Android Emulator “Get Google Play Services” Çözümü-2

Merhaba,

Bu konuya daha önce Android Emulator “Get Google Play Services” Çözümü başlığı altında deyinmiştik. Burada ikinci versiyon olarak API 21 (Android 5.0.1) için olan google play services paketini paylaşmak istedim.

  • Öncelikle bize lazım olan 2 tane google maps apk'sını buradan indirelim.
  • Eclipse>Window>Android Virtual Device Manager'ı açalım. New diyelim. Aşağıdaki gibi ayarları yapalım.

2016-05-03_13-18-10

  • Ayarları yaptıktan sonra Android Virtual Device Manager üzerinde start edelim. Bundan sonra yapacağımız işlemde emulatörün açık olması gerekiyor. Çünkü apk ları emultördeki android işletim sistemine kuracağız.
  • Şimdi bizim android-sdk nın olduğu klasöre gidelim. Orandan platform-tools klasörüne girelim. bendeki yolu D:\Android\android-sdk\platform-tools şeklinde.
  • Bu klasörün içerisine indirdiğiniz rar dosyasındaki iki tane apk yı koyuyoruz.
  • Bundan sonraki işlemleri komut penceresi (cmd) üzerinden klasör içerisindeki adb.exe yi kullanarak yapacağız.
  • Şimdi klasör içerisindeyken shift+mouse sağ tık yapalım ve Komut penceresini burada aç diyelim.

2016-05-03_13-18-53

  • Bunu yaparak cmd içerisinde buraya elle tek tek yazarak gitmek yerine bu dizinden işlem yapabilecek komut satırına ulaşmış oluyoruz. Güzel ve kullanışlıdır tavsiye ederim 😉
  • ilk önce burada   "adb install com.google.android.gms-6.7.76_(1745988-038)-6776038-minAPI9.apk" komutunu veriyoruz. ve kurulumu success diyene kadar bekliyoruz.
  • Sonra "com.android.vending-4.4.22.apk​" komutunu veriyoruz. ve kurulumu success diyene kadar bekliyoruz. (Yukarıdaki gibi)

İşlem tamamlanmıştır. Gönül rahatlığı ile kullanabilirsiniz.

 

software

Xcode 7.3 Güncelleme Problemi

Apple 21 Mart'ta yaptığı lansmanda yeni güncellemeler yeni cihazların tanıtıldığını gördük. Her lansmanda olan güncellemeler  ve versiyonlar yine tanıtıldı. Bu lansmanda iOS 9.3 ile birlikte Mac OS 10.11.4 sürümü ve Xcode 7.3 gördük. Ama tüm güncellemeleri tam olarak gerçekleştirdiğim halde Xcode 7.2.1 versiyonu bir türlü güncelleyemedim. Çok enterasan bir şekilde Güncellemerimde güncellenmiş olarak görülsede xcode u açtığımda eski versiyon ile karşı karşıya kaldım. Bir süre araştırınca yalnız olmadığımı gördüm.

Xcode_7_3

Çözüm olarak ise yeni versiyonun *.dmg olarak indirilip kurulması olarak mutabık kaldım. Artık versiyonum 7.3… Bunun için https://developer.apple.com/downloads/  adresinden Xcode 7.3 ü dmg olarak indirip kurabilirsiniz. linke gitmekte sıkıntı yaşarsanız önce hesabınıza login olup sonra adrese gitmeyi öneririm..-

Kodlamaya devam… 🙂

software

Yazılımda Console Kullanımı

Yazılım geliştrirken kurtarıcımızdır console kullanımı. Uygulamayı çalışytırdığımızda tanımladığımız bir değişkene değer geldimi gelmedi mi, yaptığımız bir sorgu geri döndü mü, döndüyse ne geldi? Bağlantı kurduğumuz web serviste ne döndü gibi bir yığın işi arka planda uygulama çalışırken görmemizi sağlar. Uygulama ekranına yazmadan usulce sessize arkadan bizi uyararır. Bazende kodumuz çalışıyor mu yada if stamement e girdimi diye merakımızı giderir araya yazdığımız console koduyla. Ben burada farklı dillerde ve programlarda kullanılan bu yapıyı tek bir yazıda  toplamak istedim. Tümü olmasada kullandığım platformlar kadarını paylaşacağım.

1- Öncelikle Dünya da bir numara olan Javascripte bakalım.

console.log("resuldolaner.com");

tabi bunu görmek için tarayıcınızın geliştirici araçlarını açarak Console bölümüne girmelisiniz. Ör: Chrome için F12->Console bölümüne girmelisiniz.

2- Andorid – Java – Eclipse

Eclipse Log.d("Tag", "Message");

bu kodu uygularken android.util.Log kütüphanesini eklemenizi isteyecektir.  Mesajı görmek için Window->Show View->Console yaparak console ekranının açık olduğuna emin olunuz.

3- iOS – Xcode – Object C

NSLog(@"message");

yazarak görüntüleyebilirsiniz Değişkenin aldığı değerleri görmek için NSLog(@"Message %@", stringDegikenAdi); şeklinde kullanabilirsiniz.

4- Windows Phone – C#  – Visual Studio

System.Console.WriteLine("Message");

yazarak görüntüleyebilirsiniz.

 

Şimdlilik bu kadar aklıma geldikçe ekleyeceğim.

 

yönetici

“Yöneticinin görevi kahraman olmak değil, kahraman yetiştirmektir.”

Bu cümle kişisel gelişim ve iyi yönetici olmayla ilgili kitaplarda rastladığımız cümlelerden biridir aslında. Gerçek hayatta ise %100 görülen ve uygulanmayan durumlardan da biridir. Hele ki Kamu kurumlarda genelde karşılaştığımız durumdur bu. Her yönetici bir üstüne karşı kendini göstermek için ön planda olmak isterler. Bir ürünün, bir işin kahramanı olmak isterler. Tabi bunu yaparken asıl kahramanların üstüne bazen bilerek, bazen de bilmeyerek basıp geçerler. Çalışanlarını basamak olarak kullanıp yükselmek isterler. Esasında insanın doğasında vardır kendini gösterme isteği. 

İşinde iyi olan kimseler, güç motivasyonuna bakılmaksızın yönetici konumuna getirildilklerinde bazı sorunlar oluşmaya başlamaktadırlar. Bu kimselerin başarı motivasyonu yüksek ama güç motivasyonu bu kadar hatta hiç yüksek olmayabilir. Başarı motivasyonundan kastımız devam en iyiyi en güzeli başarmak istemeleridir. En iyisi olmadığı zaman durumdan rahatsız olmalarıdır. Bu iyi birşeydir. Ama bunlar oluşurken bir ekip ile oluştuğunun, bir takım çalışmasıyla olmasının ve bunun farkında olmak işte bu güç motivasyonudur.  Güç motivasyonu olmayan yöneticiler başarı hazzını tatmak için her işi kendileri yapmak isterler.  Bunu yaparken başkalarının başarılarını kendi başarıları gibi gösterirler. Tek isim olmak isterler. Bazen de tam tersi ekibindeki başkalarının başarılarını kendi başarısı gibi görmeyebilir, yaptığı işi kabullenmeyebilir. Oysa ki benlik değil birlik bakış açısıyla yaklaşmalıdır.  

Yönetici kahraman olmamalı, kahraman yetiştirmelidir ki daha iyiye daha güzele ekip olarak ulaşabilsin ve yönettiği ekibi ile iletişim kurabilsin. Tabi bunların olması için yöneticileri atayan yöneticilerinde bu özelliklere sahip olması gerektiğini unutmayalım 🙂

 

* Çeşitli kitaplardan ve makalelerden derlemedir. 

 

1358956058_32

iOS Application Transport Security nedir?

iOS 9  ile birlikte uygulamanızda "Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file." hatası almaya başlamış olabilirsiniz. Peki ATS yani Application Transport Security nedir?

Application Transport Security uygulama ve web hizmetleri arasındaki bağlantıların güvenliğini artıran bir özelliktir. Uygulamalar http bağlantıları ile veri alışverişinde bulunurlar. Bu bağlantılar genelde "https" olan güvenli bağlantı prokolü ile yapılmalıdır. Ama uygulama içerisinde http kullanmanız gerekirse o zaman bunu geliştirdiğiniz uygulamanın içerisinde belirtmeniz gerekir. Bunuda info.plist içerisine yazacağınız kod ile ATS yi devre dışı bırakarak yapabilirsiniz. 

Aşqağıdaki kod bloğunu projenizdeki info.plist dosyasına yapıştırırsanız probleminiz çözülecektir.

  1. <key>NSAppTransportSecurity</key>  
  2.      <dict>  
  3.           <key>NSAllowsArbitraryLoads</key><true/>  
  4.      </dict>  

 

Detaylı Bilgi İçin:

https://forums.developer.apple.com/thread/3544

https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/