BIL4106 - MOBiL PROGRAMLAMA TEKNiKLERi Yard. Doç. Dr. Oğuzhan Topsakal

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

HTML e GİRİŞ Temel HTML etiketleri.
XML’in ZAMAN ve YER ETKİNLİĞİ AÇISINDAN İNCELENMESİ
Saatte V km hız ile giden bir aracın t zamanda aldığı yolu bulan metodu yazınız. Metodu kullanacak bir program yazınız. ( yol=hız*zaman, x=V*t) — Metot.
SharePoint İş Süreçleri Yönetimi
HTML, XHTML and CSS XHTML
Değişkenler ve bellek Değişkenler
Erkan BALABAN Yazılım Uzmanı NTV
Java Uygulamaları Konsol Uygulaması.
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Dayalı Programlama
GAMZE KAYA JSON.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
P AKET E RIŞIMLERI SıNıFLARıN YENIDEN KULLANıMı. P AKET ( P ACKAGE ) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.BufferedReader; BufferedReader.
Nesne Tabanlı Programlama
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
Temel HTML Eğitimi Erman Yükseltürk.
IT 504 İnternet ve Web Programlama Tanıtım Yrd. Doç. Yuriy Mishchenko.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Erişim Denetimi, Fonksiyon
NESNE TABANLI PROGRAMLAMA -METOTLAR-
METODLAR.
NESNEYE DAYALI PROGRAMLAMA
XML Document Object Model (DOM)
İş Parçacıkları Thread(s)
LINQ (Language Integrated Query)
İnternet Teknolojisi Temel Kavramlar
Metotlar.
METOTLAR.
ÇOK BİÇİMLİLİK POLYMORPHISM
APPLET KAVRAMI ve GRAFİK UYGULAMALARI
Önceki Dersi Hatırlama !!
Kalıtım.
Kalıtım , Sınıf Asli Ergün.
Mobil Web XHTML-MP .NET ve Mobil Web Uygulamalar
DÖNGÜLER.
JAVA’DA DİZİLER Dr.Galip AYDIN.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
Ders İçeriği Liste Soyut veri yapısı (ADT)
LINQtoSQL Silverligth Uygulamalarında LinqtoSql. LINQ (Language Integrated Query) özellikle dil içerisinde, Sql tarzı sorgular yazabilmemizi ve bunları.
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
İnternet Teknolojisi Temel Kavramlar
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
Görsel C# ile Windows Programlama
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
BIL MOBiL PROGRAMLAMA TEKNiKLERi
BIL MOBiL PROGRAMLAMA TEKNiKLERi
BIL MOBiL PROGRAMLAMA TEKNiKLERi
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
BIL MOBiL PROGRAMLAMA TEKNiKLERi
BIL MOBiL PROGRAMLAMA TEKNiKLERi
BSM447 – MOBİL UYGULAMA GELİŞTİRME
MOB İ L UYGULAMA GEL İ ŞT İ RME Hafta 11. VER İ LER İ SAKLAMA Android sistemlerinde hazırlanacak projelerde verileri saklamak için android sisteminin.
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 7. Hafta.
ANDDROID ASYNCTASK Mobil Programlama. ANDDROID ASYNCTASK –ARKA PLAN UYGULAMALARI Neden arka plan i ş lemleri? Android uygulamalarında uzun sürecek i ş.
DYNAMİC HTML EVENT MODELS SİNEM YARDIMCI ÇAKIL SU KIRLI.
Kompozisyon Bir Sınıf diğer sınıf nesne referanslarını içinde barındırabilir. Bu referanslar sınıfın üyeleridir.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
XML ve XML WEB SERVİSLERİ Volkan ALTINTAŞ. XML Bağımsız bir kuruluş olan W3C tarafından tasarlanmıştır. Herhangi bir kurumun tekelinde değildir. Kişilerin.
APP INVENTOR Emre ANLAR.
5- class & object Nesne Yönelimli Programlama - i
ANDROID STUDIO İLE UYGULAMA GELİŞTİRME ÖRNEKLERİ SAVAŞ TUNÇER.
ANDROID STUDIO İLE UYGULAMA GELİŞTİRME ÖRNEKLERİ 2 SAVAŞ TUNÇER.
3- VERİ TİPLERİ - OPERATÖRLER Nesne Yönelimli Programlama - i
Mobil uygulama geliştirme pelin yıldırım Fatma bozyiğit
Bilgisayar Mühendisliğine Giriş
Web Servisi Aracılığıyla Android Cihazlardan Sıcaklık Kontrolü
Milli Eğitim Bakanlığı Eğitek Haydar TUNA Teknik Öğretmen ve Yazar
Sunum transkripti:

BIL MOBiL PROGRAMLAMA TEKNiKLERi Yard. Doç. Dr. Oğuzhan Topsakal

Bu Derste Web servislerle veri alişverişi Web servislerle veri alişverişi XML ve JSON formatları XML ve JSON formatları Web servislere örnekler Web servislere örnekler 2

Web Servis Neden Kullanılır? Nedir Nedir Network üzerinden bilgisayardan bilgisayara etkileşimi destekleyen yazılım sistemleridir Network üzerinden bilgisayardan bilgisayara etkileşimi destekleyen yazılım sistemleridir Web servis belli bir URLde bulunan, webden HTTP üzerinden gelen isteklere yanıt veren bir server daki bir uygulamadır. Web servis belli bir URLde bulunan, webden HTTP üzerinden gelen isteklere yanıt veren bir server daki bir uygulamadır. Web servislerin hangi dille yazıldığı genelde önemli değildir. Web servislerin hangi dille yazıldığı genelde önemli değildir. Neden Neden Verilerin hepsinin ilk app paketi içinde iletilmesi mümkün değil Verilerin hepsinin ilk app paketi içinde iletilmesi mümkün değil Webden yeni güncel verilere ulaşmak gerekebilir Webden yeni güncel verilere ulaşmak gerekebilir Kullanıcıdan yada cihazdan alınan verilerin iletilip saklanması gerekebilir. Kullanıcıdan yada cihazdan alınan verilerin iletilip saklanması gerekebilir. 3

Web Servis Nasıl Kullanılır 1 App aynı domainde yada farklı domainlerde birden fazla web servise bağlanıp veri alış verişi yapabilir 1 App aynı domainde yada farklı domainlerde birden fazla web servise bağlanıp veri alış verişi yapabilir Bağlantılar appnin çalışmasını bloke etmemesi için asenkronize şekilde thread içinde yapılır. Bağlantılar appnin çalışmasını bloke etmemesi için asenkronize şekilde thread içinde yapılır. 4

Web Servislerle Veri Alışverişinde Kullanılan Formatlar Web servislerle veri alış verişi genelde XML yada JSON formatları ile yapılır. Web servislerle veri alış verişi genelde XML yada JSON formatları ile yapılır. XML (Extensible Markup Language) XML (Extensible Markup Language).xml uzantılı.xml uzantılı JSON (JavaScript Object Notation) JSON (JavaScript Object Notation).json uzantılı.json uzantılı 5

XML Formatı XML (Extensible Markup Language) XML (Extensible Markup Language) başlama-tagı: başlama-tagı: bitiş-tagı: bitiş-tagı: boş-eleman tags: boş-eleman tags: Attribute: Başlama tagı içersinde isim/deger cifti Attribute: Başlama tagı içersinde isim/deger cifti Connect A to B. Connect A to B. XML tanimlama XML tanimlama Kontrol etmek icin: Kontrol etmek icin: 6

JSON Formatı - 1 Örnek:{ "id": 1, "id": 1, "name": "Foo", "name": "Foo", "price": 123, "price": 123, "tags": [ "tags": [ "Bar", "Bar", "Eek" "Eek" ], ], "stock": { "stock": { "warehouse": 300, "warehouse": 300, "retail": 20 "retail": 20 }} 7 Web sitesi: json.org Web sitesi: json.orgjson.org JSON doğruluk kontrol: JSON doğruluk kontrol: JSON nesnesi sırası önemli olmayan isim/değer çifti kümesidir. JSON nesnesi sırası önemli olmayan isim/değer çifti kümesidir. JSON nesnesi sol parantez ile başlar JSON nesnesi sol parantez ile başlar JSON nesnesi sağ parantez ile biter JSON nesnesi sağ parantez ile biter Her isimden sonra ‘:’ gelir Her isimden sonra ‘:’ gelir isim değer çiftleri ‘,’ ile ayrılır isim değer çiftleri ‘,’ ile ayrılır

JSON Formatı { "firstName": "John", "firstName": "John", "lastName": "Smith", "lastName": "Smith", "isAlive": true, "isAlive": true, "age": 25, "age": 25, "address": { "address": { "streetAddress": "21 2nd Street”, "city": "New York", "state": "NY", "postalCode": " " "streetAddress": "21 2nd Street”, "city": "New York", "state": "NY", "postalCode": " " }, }, "phoneNumbers": [ "phoneNumbers": [ { "type": "home", "number": " " "type": "home", "number": " " }, }, { "type": "office", "number": " " "type": "office", "number": " " } ], ], "children": [], "children": [], "spouse": null "spouse": null}

Web Servis API - örnekler Facebook API: Facebook API: Twitter API: Twitter API: Dropbox API: Dropbox API: Open Weather API: Open Weather API: Test için POSTMAN Chrome extension-app kullanılabilir. Test için POSTMAN Chrome extension-app kullanılabilir. 9

Open Weather API Şehir ismi ile: Şehir ismi ile: Lat - Lng ile: Lat - Lng ile: Alan kodu ile: Alan kodu ile: Cevaptaki isimlerin açıklaması Cevaptaki isimlerin açıklaması Test için POSTMAN extension kullanılabilir. Test için POSTMAN extension kullanılabilir. 10

Network İşlemleri Main Threadde Yapılmaz Thread: bir programın kendini eş zamanlı birden fazla iş parçasına ayırabilmesinin bir yoludur. ( Thread: bir programın kendini eş zamanlı birden fazla iş parçasına ayırabilmesinin bir yoludur. ( Ana (Main - UI) Thread: 1 tanedir Ana (Main - UI) Thread: 1 tanedir Arka plan (Background) Thread: Programların ana akışı bloke etmeden arka planda uzun sürebilecek işlemleri (networkden birşeyler okuma, veritabanından birşeyler okuma gibi) gerçekleştirmesine imkan verir. Arka plan (Background) Thread: Programların ana akışı bloke etmeden arka planda uzun sürebilecek işlemleri (networkden birşeyler okuma, veritabanından birşeyler okuma gibi) gerçekleştirmesine imkan verir. public void onClick(View v) { new Thread(new Runnable() { new Thread(new Runnable() { public void run() { public void run() { Bitmap b = loadImageFromNetwork(" Bitmap b = loadImageFromNetwork(" mImageView.setImageBitmap(b); mImageView.setImageBitmap(b); } }).start(); }).start();} 11

Ana Threadi haberdar etmek Arka planda çalışan işlemler bitince ana thread haberdar edilmesi gerekir Arka planda çalışan işlemler bitince ana thread haberdar edilmesi gerekir Activity.runOnUiThread(Runnable) Activity.runOnUiThread(Runnable) View.post(Runnable) View.post(Runnable) View.postDelayed(Runnable, long) View.postDelayed(Runnable, long) Ancak arka planda yaptığımız işlemler karmaşıklaşınca bunlarla işlem yapmak zorlaşabilir onun için AsyncTask ( sınıfından yararlanmak daha iyi bir çözüm olur. İşlem bitince ana threaddeki UI elemanları güncellenir. Ancak arka planda yaptığımız işlemler karmaşıklaşınca bunlarla işlem yapmak zorlaşabilir onun için AsyncTask ( sınıfından yararlanmak daha iyi bir çözüm olur. İşlem bitince ana threaddeki UI elemanları güncellenir. 12

AsyncTask kullanımı public void onClick(View v) { new DownloadImageTask().execute(" new DownloadImageTask().execute(" private class DownloadImageTask extends AsyncTask { /** The system calls this to perform work in a worker thread and delivers it the parameters given to AsyncTask.execute() */ /** The system calls this to perform work in a worker thread and delivers it the parameters given to AsyncTask.execute() */ protected Bitmap doInBackground(String... urls) { protected Bitmap doInBackground(String... urls) { return loadImageFromNetwork(urls[0]); return loadImageFromNetwork(urls[0]); } /** The system calls this to perform work in the UI thread and delivers the result from doInBackground() */ /** The system calls this to perform work in the UI thread and delivers the result from doInBackground() */ protected void onPostExecute(Bitmap result) { protected void onPostExecute(Bitmap result) { mImageView.setImageBitmap(result); mImageView.setImageBitmap(result); }} Açıklama: AsyncTask Açıklama: AsyncTask String gönderilen parametrenin türü (burada URL string) String gönderilen parametrenin türü (burada URL string) Void gelişmeleri aldığımız verinin tipi Void gelişmeleri aldığımız verinin tipi Bitmap dönderilen verinin tipi Bitmap dönderilen verinin tipi 13

AsyncTask kullanımı Detaylar: Detaylar: doInBackground() metodu arka planda çalışır. Sadece bu metod gerekli. doInBackground() metodu arka planda çalışır. Sadece bu metod gerekli. onPreExecute(), onPostExecute(), ve onProgressUpdate() metodları ana threadde çalıştırılır onPreExecute(), onPostExecute(), ve onProgressUpdate() metodları ana threadde çalıştırılır doInBackground() elde edilen değer onPostExecute() doInBackground() elde edilen değer onPostExecute() Yapılanları yayınlamak için publishProgress() kullanılabilir (doInBackground() çağrılır ve onProgressUpdate() UI thread de çağırır) Yapılanları yayınlamak için publishProgress() kullanılabilir (doInBackground() çağrılır ve onProgressUpdate() UI thread de çağırır) Yapılanları herhangi bir threadden iptal edebilirsiniz. Yapılanları herhangi bir threadden iptal edebilirsiniz. 14

Hava Durumu Kodunun incelenmesi Hava Durumunu indirip kurun Hava Durumunu indirip kurun 15

Kişisel Bonus Ödevi App Inventor araştırması: Bu hafta Bu hafta App Inventor hakkında detaylı bilgi (en az 3 sayfa), App Inventor hakkında detaylı bilgi (en az 3 sayfa), App Inventor hakkında bulduğunuz ve beğendiğiniz en az 10 türkçe kaynak listesi, App Inventor hakkında bulduğunuz ve beğendiğiniz en az 10 türkçe kaynak listesi, Haftaya Haftaya Beğendiğiniz App Inventor örneği ve açıklaması Beğendiğiniz App Inventor örneği ve açıklaması 16

Haftaya Okuma Ödevi Android Appde map kullanımı: servisi servisi servisi servisi ingilizce: mobile mobile mobile mobile

Kaynaklar Android API: Android API: Udacity - Developing Android Apps (Google tarafından) Udacity - Developing Android Apps (Google tarafından)

Sorularınız? 19