Hybrid Mobil Uygulamada Web Servis

Herkese selamlar,




     Hybrid mobil uygulamalarda direkt veri tabanına bağlanma gibi bir durum söz konusu olmadığı için veri servis yazmalıyız. Diğer bir tanımla web servis . Veri tabansız bir uygulama ( Büyük çaplı bir uygulama için) düşünülemez bu yüzden ya web servis yazmayı bilmelisiniz ya da bir backend developer ile çalışmalısınız. 


  Öncelikle web servis nedir bunun tanımını yapalım. Web servisler, HTTP protokolü ile XML,JSON,TEXT, HTML gibi yanıtlar gönderip alarak iki cihaz arasındaki iletişimi sağlayan bir haberleşme yöntemidir. Web Service ile platform bağımsız tüm cihazlara veri aktarımı gerçekleştirilir. Örneğin mesajlaşma uygulamanız Android, IOS, windows Phone gibi işletim sistemli cihazlarda rahatlıkla çalışır. Yani web servisiniz veri tabanınıza bağlanır ve sizin istediğiniz verileri karşıya gönderir. Kulağa çok hoş geliyor değil mi ? 2 çeşit web servis vardır. Bunlar Restful ve SOAP. Aralarında ki fark Restful ile xml, json, text, html türde yanıtlar alıp gönderebilirken, SOAP  da sadece xml ile işlem yapabilirsiniz. SOAP da xml işlem yapabilmek için metodlar kullanılır. Örneğin yazdığınız metodun adı deneme ise deneme metodunu çağırmanız gerekli. Restful’da ise url kullanılır. Örneğin ‘http://localhost:xxxx/deneme’ şeklinde. Json ve xml konuları ile ilgili detaylı yazı yazacağım.
Peki ne kadar güvenli ? Doğrudan veri tabanına erişim olmadığı için tehditlerden web servis ile korunabilirsiniz. Unutulmamalı ki web servis de sadece sizin belirlediğiniz veriler gözükmektedir. 


   
     Mobil uygulamalarda web servis kullanımı en iyi Facebook Messenger ile örneklendirilebilir. Mesajlarınız  hem web sayfasına hemde Facebook Messenger' a gelir. Bu web servis ile yapılır. Burada web servisin platform bağımsız olduğunu da görmüş oluruz.

     Web servisi hangi diller ile yazabilirim diye soracak olursanız buyrun yazıma : )

     Görüşmek üzere...

Hybrid Mobil Uygulamada Veritabanı Kullanımı




Herkese selamlar,

     Hybrid’in arka tarafıyla ilgili pek bilgi paylaşımında bulunmadım. Bugün back end bölümüne değinmek istiyorum. Uzun uzun yazmak yerine soru cevap şeklinde yazımı yazacağım. 
  • Hybrid de doğrudan veri tabanı sunucusuna bağlanılır mı?
          Hayır, doğrudan bir veri tabanı sunucusuna bağlanamaz. 
  • Veri tabanı sunucusuna nasıl bağlarız?
        Bu sorunu çözmek için kendi veri servisinizi yaratmanız gerekiyor. 
  • Veri servisi oluşturmak için hangi programlama dilini kullanmalıyız?
       PHP, Node.js , ASP, ASP.NET vs
  • Hangi veritabanı yönetim sistemini kullanmalıyız?
       Oracle, mySQL, MS SQL vs 

      Sorulabilecek en önemli soruların bunlar olduğunu düşünüyorum. 

Görüşmek üzere…

Hybrid vs Native





Herkese merhabalar,

    Bugün ki konumu sizler seçtiniz. Bildiğiniz gibi instagram da soru cevap bölümünde en çok sorulan soruyu elle alacağımı söyledim. Bu doğrultuda konumuz native mı hybrid mı oldu.

      Native ve hybrid uygulamaları anlamak için önce bir tanımlarına bakalım. 

    Native mobil uygulamalar, iOS ve Android gibi farklı platformlar için farklı programlama dilleri ve geliştirme paketleri gerektirirler. Java, Objective-C , Swift  programlama dilleri bulunmaktadır. Java ile geliştirilen Android uygulamaları, Objective C veya Swift ile geliştirilen iOS uygulamaları native uygulamalardır.


     Hybrid mobil uygulama tekniği, temel olarak ‘write once, run everywhere’ yani tek bir kod çıktısı ile birden fazla platformda çalıştırılabilmek üzerine geliştirilmiştir. Native uygulamalar gibi sistem kaynaklarına doğrudan değil de bir ara katman ile erişir.

   Hybrid uygulamalar HTML5, CSS3 ve JavaScript ile geliştirilir. Farklı cihazlarda ve ekran çözünürlüklerinde rahatlıkla benzer uyumluluk göstererek çalışır.  Üstelik geliştirmesi zaman ve bütçe açısından az maliyetlidir. Öğrenimi de az zaman alır.  Aynı zamanda cross-platform geliştirme olarak da adlandırılır. Tüm platformlar için aynı sonuç üretilir ve native benzeri uygulama geliştirilir.

   Çalıştığım dönemde hybrid ile büyük bir proje yapmıştım. Bu uygulama üzerinden anlatmak isterim. Uygulamada veri alıp gösterme dışında farklı işlemlerde mevcuttu ve gayet başarılı bir uygulamaydı.  Native ve hybrid performans açısından her zaman ayrı tutulmuştur. Ama ben öyle düşünmüyorum çünkü uygulamada performans açısından büyük farklar göremedim.  Cihazların özelliklerine göre  uyumluluk ve tasarımda da sorunlarla karşılaşmadım. Evet benimde ilk başlarda korkularım vardı ama hybrid gayet kullanılabilir. 

    Elbette unutmamalı ki kodlarınızı uzatmaktan kaçınırsanız hızlı bir performans elde edersiniz.

    Tavsiyem hybrid'den yana. 

    Hybrid Öğrenmekten zarar gelmez :))

Görüşmek üzere...









Hybrid ile Read File

Herkese selamlar,

     Dosyadan yazma ve okuma işlemlerini ilk c++ ile gerçekleştirdim. O zamanlar bana oldukça zor ve karmaşık gelen bir işlemdi. Zamanla kolay olduğunu anladım ve farklı diller ile gerçekleştirmeye başladım.

     Bugünde sizler için dosyadan okuma işlemini hybrid ile yapacağız. Dosya işlemlerinin mantığını anladığınız takdirde zor olmadığını sizlerde anlayacaksınız.

Evet Başlayalım !!

    Tabii ki sayfa ilk açıldığında arka planda load fonksiyonlar hemen devreye girmeli ve okuma işlemini hazır hala getirmeli. İşte load fonksiyonlar.
    
     function FileSystemFail(evt) {
        alert('Error:' + evt.error.code.toString());
    }
   
    function GetFileEntryReader(fileEntry) {
        fileEntry.file(ReadFile, FileSystemFail);
    }
    function ReadFile(file) {//Okuma işlemini gerçekleştiren fonksiyon.
        var reader = new FileReader();
        reader.onloadend = function (evt) {
            viewModel.txtValue(evt.target.result);
            alert('Okuma tamamlandı');
        };
        reader.readAsText(file); 
}

    Yukarıdaki fonksiyonlarda bilmediğiniz örneğin FileReader gibi terimler varsa öncelikle dosya okuma işlemini araştırınız.

    Butona basınca okuma işlemini gerçekleşmesi için de  (elbette ki en önemli nokta hybrid için bu kısım oluyor) aşağıdaki fonksiyonu yazarız. Buradaki application1 yerine kendi proje isminizi yazmanız gerekli.

 onButtonReadClick: function (e) {
            if (Application1.fileSystem == null) {
                alert('Dosyaya ulaşılamadı');
                return;
            }
            Application1.fileSystem.root.getFile("satirarasicode.txt", { create: true }, GetFileEntryReader, FileSystemFail);
        }


    Biraz daha bakıp araştırırsanız yukarıdaki kodların çok işe yarar olduğunu anlayacaksınız. Şimdilik bu kadar...

Görüşmek üzere....

"Use Strict " Mode Nedir ?

     



     Devextreme kullanmaya başladığım sıralarda .js sayfasının en başında "use strict" yazısıyla karşılaştım. ve silme ihtiyacı hissetim. ve sildiğimde herhangi bir hata almadım. O yüzden her gördüğüm yerden sildim. Bence bir sorun yoktu ve bu yazı çok gereksizdi...

     Oysa amacı çok büyükmüş !! Bizleri belli kurallar çerçevesinde kod yazmaya ve bug oluşmasını minimuma indirgemeye çalışıyormuş. Ayrıca oluşan hataları kolayca ayıklamamıza yardım ediyor. javascript kod yazım/kullanım kod standardı olan Ecmascript’in Ecmascript5 versiyonu ile Strict Mode (SM) kullanıma sunuldu. "Use strict" bir komut değildir.

Tüm fonksiyonlar için geçerli olması isteniyorsa fonksiyonların dışına yazın.
"use strict";
function test() {
}
function testiki() {
}

 Tek bir fonksiyon için geçerli olması isteniyorsa fonksiyonun başına yazın.

function test() {
"use strict";
}

    Neden “use strict” kullanmalıyız ? Çünkü  JavaScript’i daha güvenilir hale gelir. Normalde hata olarak algılanmayan  kötü syntax ları  hataya çevirir. Bu durumda onu değerli kılar. Tercih tabii ki size ait. Bana soracak olursanız ben kullanmayı tercih ediyorum. 

Görüşmek üzere...


Devextreme ve Css





Herkese selamlar,

     Devextreme ile tasarım yapmak düşündüğünüz kadar kolay değil. Çünkü ios ve android telefonlar için farklı css dosyaları mevcuttur.  Bu yüzden yaptığınız tasarımlar elbette birbirinden farklı olmak zorunda. Tabii ki bazı ortak tasarımlar mevcut. Buton tasarımından textbox tasarımına kadar farklılıklar olduğunu göreceksiniz. Sizde benim gibi tasarım ile  yani css ile uğraşmaktan zevk alıyorsanız bu iş pekte canınızı sıkmamıştır.

     Devextreme içerisinde birden fazla css dosyası içermektedir. Fakat en önemli css dosyaları ebetteki android ve ios tasarımını içeren dosyalar.  İçerisinde her tool için css içermekte . Basıldığında nasıl olsun, basıldıktan sonra nasıl olsun vs her adım içermekte. Bunu incelemek zor olabilir tabii ki vakit alan bir işlem . Bunun için tabii ki Google incele özelliğiyle ilgili alanın css bilgilerine ulaşabilirsiniz.


     Peki ben ekstra css yazamaz mıyım ? dediğiniz duyar gibiyim. Tabii ki sizde yeni bir css dosyası açıp istediğiniz sayfaya yeni tasarımlar ekleyebilirsiniz. Unutmamalı ki html5 kullandığınız için css kullanımı oldukça esnek. Ayrıca css dışında bootstrap de kullanabilirsiniz.

     Devextreme css denemeleri yapmamız  için harika bir çalışma alanı yapmamış.Sizlere linki veriyorum . Buradan çalışma yaparak yaptıklarınızı kopyalayarak projenizde kullanabilirsiniz.

Bol css çalışmalı günler dilerim :)




Samsung Galaxy Note 8

     
     Ben hala note 3 ile oynarken samsung galaxy note 8'i tanıttı bile :) / bayağı geride kaldım galiba/ Tabi yazılım geliştiricisi olarak- hemde mobil- geride kalmak  olmazdı.  O yüzden tüm note 8 özelliklerini gelin beraber öğrenelim.


     Galaxy Note 8 depolama tarafında bizi doyuracak gibi . 6 GB RAM'e sahip olan note 8 , depolama alanı 64 ,128 , 256 GB olmak üzere üç farklı seçenek ile karşımıza çıkıyor. Fakat ülkemizde cihazın sadece 64 GB'lık versiyonu satışa sunulacak. Ayrıca microSD destekli.

     Android 7.1.1 Nougat işletim sistemi ile satışa çıktı. Önümüzdeki dönemde yayınlanacak olan Android 8.0 Oreo güncellemesi tabi ki alarak daha da işlevsel hale gelecek. 

      Samsung kullanıcıların çift arka kamera beklentisini note8 ile cevapladı. 

Arka Kamera: 12 Megapiksel f/1.7 ve 12 Megapiksel f/2.4, OIS

Ön Kamera: 8 Megapiksel f/1.7


     Peki renkleri nasıl olacak? Bazı kullanıcılar için önemli detaylardan biri de bu. Gece Siyahı, Orkide Grisi ve Altın Sarısı renkleri ile 18 Eylül'de raflarda yerini alacak. 


     Ya fiyatı nedir ? Herkesin duymaya korktuğu cevap ise 4999 TL fiyat.  24 Ağustos - 18 Eylül tarihleri arasında ön siparişler alınacak.Ön sipariş veren kullanıcılara 500 TL'lik aksesuar hediye kuponu ,19 Eylül - 6 Ekim tarihleri arasında sipariş veren kullanıcılara ise 300 TL'lik aksesuar hediye kuponu dağıtılacak.

Ekran işlemci ve boyut- ağırlık özellikleri ise 

Ekran: 6.3 inç, QHD+, 2960 x 1440 piksel, Super AMOLED, Gorilla Glass 5

İşlemci: Exynos 8895 ( 4 x 2.5 GHz Exynos M2 + 4 x 1.7 GHz Cortex-A53 )

Boyut ve ağırlık: 162.5 x 74.8 x 8.6 mm - 195 gram bu şekilde.

     Ve son bir özellik olarak da 1.5 metre derinlikte suyun altında 30 dakika boyunca kalabiliyor akıllı telefonumuz.

     Hayırlı olsun :)





Robotik Kodlama Nedir? Günümüzde Neden Bu Kadar Önemli? (Basit LED Örneğiyle)

  Robotik kodlama, yazılım kodlarını fiziksel donanım (motor, sensör, LED gibi bileşenler) ile birleştirerek robotların veya akıllı cihazlar...

En Çok Okunanlar