25
T.C. B ˙ ILEC ˙ IK ¸ SEYH EDEBAL ˙ I ÜN ˙ IVERS ˙ ITES ˙ I MÜHEND ˙ ISL ˙ IK FAKÜLTES ˙ I B ˙ ILG ˙ ISAYAR MÜHEND ˙ ISL ˙ I ˘ G ˙ I ANDRO ˙ ID ˙ ILE MESAJLA ¸ SMA UYGULAMASI GÜRKAN MUSTAFA ÇAKIR PROJE ÇALI ¸ SMASI 1 Haziran 2015 B ˙ ILEC ˙ IK

2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Embed Size (px)

DESCRIPTION

Parse ve Sinch API'ler kullanılarak gerçekleştirilmiştir.

Citation preview

Page 1: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

T.C.

BILECIK SEYH EDEBALI ÜNIVERSITESI

MÜHENDISLIK FAKÜLTESI

BILGISAYAR MÜHENDISLIGI

ANDROID ILE MESAJLASMA UYGULAMASI

GÜRKAN MUSTAFA ÇAKIR

PROJE ÇALISMASI

1 Haziran 2015

BILECIK

Page 2: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

T.C.

BILECIK SEYH EDEBALI ÜNIVERSITESI

MÜHENDISLIK FAKÜLTESI

BILGISAYAR MÜHENDISLIGI

ANDROID ILE MESAJLASMA UYGULAMASI

GÜRKAN MUSTAFA ÇAKIR

PROJE ÇALISMASI

1 Haziran 2015

BILECIK

Page 3: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

ÖZET

Projenin Amacı

Iki kisinin yazılan uygulama üzerinden birbirlerine mesaj gönderilmesi amaçlandı. Proje-

nin Konusu Android üzerinde mesajlasma uygulaması.

Projenin Kapsamı

Mesajlasma uygulamasının gelistirme asaması ve kullanılan yazılım ve araçları kapsa-

maktadır.Iki bölümden meydana gelen Projenin ilk bölümünde, android isletim sistemi-

nin, genel özellikleri ve neden tercih edildigi konusunda bilgiler verilmistir. Ikinci bö-

lümde ise Uygulamayı gelistirirken kullanılan araçlar ve yazılımlar, Çalısma prensibi ve

gerçekleme asamaları yer almaktadır.

Sonuçlar

Sonuç olarak, uygulamanın gerçeklenerek bir mesajlasma uygulaması sayesinde kullanı-

cıların birbirleriyle haberlesmesi saglandı.

ii

Page 4: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

ABSTRACT

Project Objective

Through the application of two people sending each other messages was aimed. The aim

of project is messaging application on android.

Scope of Project

Development phase of messaging applications and using software and tools, involves the

use of. The first part of the project consists of two parts, the android operating system,

general features and why it is preferred that the use of information provided in the in-

formation. For the second part, software and used tools when developing application,

Operating principle, implementation phases are included.

Results

As a result, implementation this application user through a messaging application were

allowed to communicate with each other.

iii

Page 5: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

TESEKKÜR

Bu projenin basından sonuna kadar hazırlanmasında emegi bulunan ve beni bu konuya

yönlendiren saygıdeger hocam ve danısmanım Sayın Murat ÖZALP’e tüm katkılarından

ve hiç eksiltmedigi desteginden dolayı tesekkür ederim.

Gürkan Mustafa ÇAKIR

1 Haziran 2015

iv

Page 6: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Içindekiler

ÖZET ii

ABSTRACT iii

TESEKKÜR iv

SEKIL LISTESI vi

1 GIRIS 1

2 ANDROID ISLETIM SISTEMI 3

2.1 Android Isletim Sisteminin Genel Özellikleri . . . . . . . . . . . . . . . 3

2.2 Android Gelistirme Ortamları . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.1 Gradle özelligi . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 MESAJLASMA UYGULAMASI GELISTIRME 5

3.1 Kullanılan Araç ve Yazılımlar . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1.1 Android studio . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.2 Veritabanı ve kimlik dogrulama servisi . . . . . . . . . . . . . . . 6

3.1.3 Bulut mesaj servisi . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2 Uygulamanın Çalısma Prensibi . . . . . . . . . . . . . . . . . . . . . . . 9

3.3 Uygulamanın API’ler Yardımı ile Gerçeklenmesi . . . . . . . . . . . . . 10

SONUÇLAR 12

KAYNAKLAR 13

EKLER 14

ÖZGEÇMIS 18

v

Page 7: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Sekil Listesi

1 Akıs ve Bilesen Diyagramı . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Android Isletim Sisteminin Mimarisi . . . . . . . . . . . . . . . . . . . . 4

3 Parse Diyagramı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Parse Kullanıcı Tablosu . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

5 Parse Mesaj Tablosu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

6 Sinch Diyagramı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

7 Sinch Arayüzü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

8 Arayüzler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

vi

Page 8: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

1 GIRIS

Bu projeyi daha önce android üzerine uygulama gelistirdigim için bu konuda ileri tekno-

lojileri kullanmak ve ögrenmek amacıyla seçtim. Daha önce gelistirdigim projeler genel-

likle baslangıç düzeyinde oldugundan bu proje ile kendime bir seyler katmak amaçlan-

mıstır.

Proje Hakkında kısa bir bilgi vermek gerekirse öncelikle iki kullanıcı arasında wireless

aracılıgıyla iletisim kurarak veri gönderilmesi ve alınması planlanmıstır.

Buna benzer olarak yapılmıs projelerden en bilinenleri WhatsApp, Line, WeChat, kik vb.

örnek olarak verilebilir. Bunlar arasında çok fazla bir fark olmamasına ragmen hepsi ol-

dukça popüler uygulamalar arasında yer almaktadır.

Sekil 1a’da Uygulamanın akıs diyagramı görülmektedir. burada Önce Kullanıcı Oturum

Açma ekranına, oradan bilgiler dogruysa Kullanıcı Listele ekranına yanlıs ise tekrar otu-

rum açma ekranına gönderilir. Kullanıcı listele ekranına gelince ise bir kisi seçip Mesaj

Yazma ekranına geçis yapmaktadır. Burada yazdıgı mesajı gönderebilmektedir.

1

Page 9: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Sekil 1: Akıs ve Bilesen Diyagramı

Sekil 1b’de ise uygulamanın bilesen diyagramından görülecegi üzere istemciler IP agı

üzerinden Mesaj servisi olan Sinch’i ve Veritabanı olan Parse API’lerine baglanmaktadır.

2

Page 10: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

2 ANDROID ISLETIM SISTEMI

Android mobil cihazlar için, Google ve Open Handset Allience tarafından gelistirilen

Linux tabanlı ve açık kaynak kodlu bir isletim sistemidir.

Ilk olarak 5 Kasım 2007 tarihinde duyurulan Android, 34 adet donanım, yazılım ve tele-

kom sirketini arkasına alarak, mobil cihazlar için telif hakkı olmayan bir isletim sistemi-

nin; teknolojinin gelisimi için yararlı olacagı konusunda ortak kanı olusturmustur. 2008

yılında piyasaya sürüldügünde, birçok Android Isletim Sistemi Apache ücretsiz yazılım

ve Açık Kaynak Kodu lisansıyla gelistirilmeye açık hale gelmistir.

2.1 Android Isletim Sisteminin Genel Özellikleri

Android, Linux Kernel üzerine insa edilmis bir mobil isletim sistemidir, bu sistemde ara

katman yazılımı, kütüphaneler ve API C diliyle yazılmıstır. Uygulama yazılımları ise,

Apache Harmony üzerine kurulu, Java uyumlu kütüphaneler ihtiva eden uygulama iske-

leti üzerinden çalısır. Android, derlenmis Java kodunu çalıstırmak için JIT (Just In Time

∼ Dinamik Çevirmeli) ve DVM (Dalvik Virtual Machine ∼ Dalvik Sanal Makinasını)

kullanır ve cihazların fonksiyonelligini artıran uygulamaların gelistirilmesi için çalısan

genis bir programcı ve gelistirici çevresine sahiptir. Gelistiriciler için Android SDK mev-

cut bulunmakta ve her çıkan versiyonu için güncellenmektedir. Ayrıca gelistiriciler için,

uygulamalarını ücretli ve ücretsiz olarak yayınlayabilecekleri Android Market olarak ad-

landırılan bir ekosistem olusturmaktadır.

Android mimarisi,

1. Linux çekirdegi

2. Kütüphaneler

3. Android çalısma zamanı (runtime)

4. Uygulama gelistirme çatısı

5. Uygulamalar

katmanlarından olusur.

3

Page 11: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Sekil 2: Android Isletim Sisteminin Mimarisi

Android isletim sistemi, günümüzde akıllı telefonlar basta olmak üzere, dizüstü bilgisa-

yarlar, tablet bilgisayarlar, E-kitap okuyucular, televizyon(Google TV), saat(I’m Watch)

gibi birçok elektronik cihazda kullanılmaktadır.

2.2 Android Gelistirme Ortamları

Android gelistirme ortamları arasında Eclipse, Netbeans, Android Studio gibi java diliyle

android kütüphanelerini kullanarak uygulamalar gelistirilebilmektedir. Bunların yanında

Visual Studio 2015 ile gelen Xamarin kütüphanesi sayesinde C# koduyla yazdıgımız and-

roid uygulamamızı Arka planda kendi java kodlarına çevirerek derleme islemi yapmak-

tadır. Bunun yanında ise android kütüphaneleriyle ugrasmadan kodumu yazarım diyenler

için de Android’te gelistirme yapmak icin java haricinde NDK(Native Development Kit

∼ Native Gelistirme Kiti) bulunmaktadır. NDK ile C, C++ tabanlı gelistirme yapılabilir

ki genelde oyun gelistirmede çok sık kullanılmaktadır.

Yakın zamanda google tarafından desteklenen eclipse artık google tarafından desteklen-

memektedir. Ben projemde Google tarafından resmi olarak duyurulan Android Studio’yu

4

Page 12: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

kullanacagım. Google sadece android degil akıllı cihazların tümü için tek bir gelistirme

ortamı sundugunu açıklamıs bu da android studio’dur. Gerek arayüz gerekse kod yazma

bakımından gelistiriciye pratiklik saglamaktadır. Birde android studio’dan önce eclipse’de

olmayan gradle yapısına geçtigini duyurmustu. Bu da android studio’yu seçmeme biraz

da olsa sebep oldu.

2.2.1 Gradle özelligi

Gradle, projelerimizi built etmemize yarayan yeni nesil bir sistemdir. Gradle en güzel

özelligi test, debug, release esnasında almanız gereken proje paketlerini otomatiklestir-

mektedir. Bu islemleri daha önce ant, maven gibi build sistemleri ile yapmak mümkündü.

Gradle, ant ve maven’ın güzel özelliklerini almıstır. Ant da scriptler ile build konfigü-

rasyonumuzu kolayca yapabiliyorduk ama kütüphane yönetim sistemi en kötü yanıydı.

Maven, kütüphane konusunda imdadımıza yetisiyordu. maven kullanmak için jar ismini

ve versiyon bilgisini verdigimizde kendi sistemlerinden dahil o jar dosyasını buluyor ve

projeyi build edebiliyor.

Özet olarak, eclipse döneminde dısarıya bagımlılık (jar kütüphaneleri) oldukça fazlaydı.

Bundan dolayı benim yaptıgım projeyi bir baskası derlemek istediginde o jar dosyalarını

dahil etmesi gerekiyordu. Yeni gelen gradle sisteminde ise uygulamanın bagımlılıkları

gradle’da tutulmaktadır ve proje derlenmeden önce gradle derlenerek eksik jar yani kütüp-

hane dosyalarını google’ın repository’sinden indirmektedir. Eski yapıya göre avantajları

olmasına ragmen benim gördügüm eksikligi ise gradle derleme zamanıdır.

3 MESAJLASMA UYGULAMASI GELISTIRME

Parse API, Sinch API ve Android Studio gibi Uygulamalar ve Yazılımlar Tanıtılacaktır.

3.1 Kullanılan Araç ve Yazılımlar

Bu projede kullanılan yardımcı yazılımlar tanıtılacaktır.

5

Page 13: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

3.1.1 Android studio

Android Studio, Android uygulamalarının gelistirildigi, üst seviye özelliklere sahip ve

Google tarafından da önerilen resmi programlama aracıdır.

Android Studio’nun kod gelistiricilere sundugu temel özellikler sunlardır:

• Gradle tabanlı, esnek proje insa sistemi.

• Farklı özellik ve sürümlere göre çoklu APK çıktısı.

• Temel proje sablonlarıyla hızlı ve kolay proje üretimi.

• Ekran tasarımlarını kolaylastıran sürükle-bırak özellikli zengin editör.

• Uygulamanın performansı, kullanılabilirligi, farklı sürümlerde çalısabilirliginin kont-

rol edilebilecegi test araçları.

• Kolay ve güvenli APK imzalanması.

• Ek ugrasa gerek kalmadan Google hizmetlerini uygulamaya ekleyebilme.

Bu proje kapsamında Android Studio 1.2.1.1 sürümü kullanılarak kodlar yazılmıstır.

3.1.2 Veritabanı ve kimlik dogrulama servisi

Veritabanı ve Kimlik Dogrulama sistemi olarak Parse API kullanılmıstır[1]. Sekil 3’de

görüldügü gibi istemci içerinde Java kısmı ve Parse API kısmı bulunmaktadır. Internet

üzerinden Sunucuya istek ve sorgu gönderebilir. Bu islemleri Rest kullanarak Yapmakta-

dır.

Sekil 3: Parse Diyagramı

6

Page 14: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Bu API’yi tanıtmadan önce neden bu API’yi seçtim, yada alternatif baska neler var bunlar-

dan bahsedecegim. Netmera, urbanairship gibi bunun alternatifi iki site daha bulunmakta-

dır. Genel amacı itibariyle bunlar webservis, veritabanı ve hosting’i bir arada bulunduran

bulut yapılarıdır. Bunlar olmasaydı webservis ve hosting’i ayrı alıp birbirleri arasında bazı

ayarlar yapmak zorunda kalacaktık. Bu da gerek kodlayanı gerekse projenin daha sonra

kullanılabilirligi açısında çok iyi bir yapı degildir.

Bu API’ler bu baglantıları kendi içerisinde hallediyor ve bize onun SDK’sını kullanarak

erismek kalıyor. Çogunda farklı fiyat teklifleri ve istek basına fiyatlandırma geçerlidir.

Bunlardan Parse’i tercih etme sebebim ise hizmetlerini 1000 istege kadar ücretsiz sun-

ması, sitesinde yeteri kadar yardım dosyası bulundurması ve query’lerde daha esnek bir

yapı saglamasıdır[7].

Sekil 4: Parse Kullanıcı Tablosu

Sekil 5: Parse Mesaj Tablosu

7

Page 15: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Bu projede Parse 1.6.0 sürümü kullanılmıstır.

3.1.3 Bulut mesaj servisi

Bulut mesaj servisi olarak Sinch API kullanılmıstır[2]. Bunun Sayesinde atılan mesaj

karsıya iletildi mi yada iletilmeyen mesajların hangileri oldugunu kimden kime gidecegini

söyleyen bir kontroldür. Bunun yanında daha bir çok özelligide bulunmaktadır. Örnek

olarak Sesli Arama, Videolu arama ve Text mesajı gibi ekstra özellikleri bulunmaktadır.

Simdilik bu projede mesajların bildirim olarak iletilmesi için kullanılmıstır[3]. Çalısma

Sekli ise Sekil 6’deki gibi istemciye gelen mesajlar ve istemciden giden mesajları yönetir.

Sekil 6: Sinch Diyagramı

Sekil 7: Sinch Arayüzü

8

Page 16: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Bu projede Sinch-android 3.4.3 sürümü kullanılmıstır.

3.2 Uygulamanın Çalısma Prensibi

Sekil 8: Arayüzler

Sekil 8’deki arayüzlere sahip olan uygulama, ilk ekran olan Giris ekranından Baslamak-

tadır. Burada Kullanıcıdan Kullanıcı Adi ve Sifre istenmektedir. Üyeligi bulunmayanlar

ise son görüntüdeki Kayıt olma sayfasına gidecektir. Burada Kayıt islemini tamamladık-

tan sonra Tekrar Giris sayfasına yönlendirilmektedir. Buradaki islemler tamamlandıktan

sonra kullanıcıların bir listesinin bulundugu sayfaya geçilmektedir. Buradan kullanıcı bir

kisiyi seçip mesaj penceresine geçip artık kullanmaya baslayabilmektedir[6].

Bu sayfada diger uygulamalardan farklı olarak resimde gözüken mikrofon simgesine tık-

landıgı zaman konusulan metni yazıya çevirmektedir. Ek 1’de verilen kodlar yardımıyla

bu çevirme islemi yapılmaktadır. Google duydugu sese en yakın olandan en az yakın olan

kelimeleri/cümleleri listenin basından sonuna dogru sıralamaktadır. Bende burada en an-

lamlı olanı yani sıfırıncı elemanı kullanmaktayım.

Uygulamanın eksik yönlerine deginmek gerekirse, Arka planda çalısan servis sadece uy-

gulama yasam döngüsünde yer almaktadır. Yani uygulama sonlandıgında gelen mesajlar

servis çalısmadıgı için ne yazık ki bildirimde gözükmemektedir. Bu soruna çözüm ola-

rak bir yöntem gelistirdim fakat henüz kodlama asamasına yansıtılmadı. Çözümü basitçe

açıklamak gerekirse, Diger benzer uygulamalarında yaptıgı gibi sistemin açılıs broadcast

9

Page 17: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

mesajını dinleyerek yakalandıgı anda servis baslatılmalıdır. Yada internet baglantısı bro-

adcast mesajına bakıp yakalandıgı anda baslatılması çözüm olacaktır[4].

3.3 Uygulamanın API’ler Yardımı ile Gerçeklenmesi

Önceki Bölümlerde kullanılan bilesenler tanıtılmıstı. Bu bilesenleri uyumlu bir sekilde

kullanarak projeyi tamamlayacagız. ilk olarak bir android projesi açılır ve bu iki kütüp-

hane eklenerek baslanır. Bundan sonra arayüzler android’de bilindigi üzere xml kodla-

rından olusmaktadır. Bu xml kodlarını yazarak yada sürekle birak mantıgı ile görsel ara-

yüzler olusturulmaya baslanır. Arayüzler proje içerinde layout klasörü içerinde toplanır.

Daha sonra bunların her biri için bir activity sınıfı olusturmamız gerekir. Bu sınıfları da

olusturunca manifast dosyamızda bunları belirtmemiz gerekiyor.

Bu manifast dosyası android programımızın rehberi gibi düsünebiliriz gerekli izinler hangi

sinifların bulundugu hangi servislerin oldugu bu dosyanın içerisine yazılır. Bu dosya içeri-

sine internet ve wifi erisimi izni vermemizde gerekir. Bu izinler verilmez ise uygulamada

derleme sırasında bir hata meydana gelmez fakat uygulamanın internete baglanması ge-

rektiginde android sürümü düsük olanlarda isletim sistemi kapatır, yüksek olanlarda ise

uygulamayı kapatmaz o sayfada bekler. Yani izinler de uygulamalarda oldukça önemlidir.

Servis sınıfına gelince en çok sorun yaratan sınıf burası oldu. Çünkü uygulamanın kilit

noktası burası sayılabilir. Bu servis Sinch’ın arayüzünü implement ederek onun var olan

fonksiyonlarını kullandıgım kısımdır. Bu fonksiyonlar arasında mesaj gönderme, mesaj

alma, Sinch istemcisini baslatma gibi baslıca fonksiyonları vardır.

Bu kısımda en çok beni ugrastıran kısım servis ile benim sınıfımı nasıl haberlestirece-

gim? sorusunun yanıtı oldu. Bu oldukça zamanımı aldı diyebilirim. Çünkü gelen mesaj

servisten sınıfa, giden mesajda sınıftan servise iletilmesi gerekiyordu. Bunun çözümünü

broadcast ile yaptım. Broadcast mesajı yolladım ve istedigim yerde bu veriyi alıp isledim.

Bu java kodları arasında uygulamayı veritabanı ile haberlestirmek amacıyla birkaç ayar

yapmak gerekiyor. Bunu Ek 2’deki gibi ayarlamalıyız.

10

Page 18: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Daha Sonra ise Sinch’den aldıgımız key ve adresleri uygulamamıza eklememiz gerekiyor.

Bunu da Ek 3’deki gibi yapabiliriz.

11

Page 19: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

SONUÇLAR

Kısaca yaptıklarımızdan bahsedersek, Uygulamanın iki kisi arasında mesaj gönderebilir

ve alabilir olması amaçlanmıstı.

Ilk olarak, uygulamanın arayüzleri kodlandı ve tasarlandı[5]. Daha sonra ise bunların java

kodları yazıldı. Bu kodların yazımından Sonra uygulamada eksik ve hatalar varsa bunlar

düzeltildi. Yasanılan hatalara uygun mesaj verilerek kullanıcılara hatalarının farkında ol-

ması saglandı. Son olarak ise artık çalısabilir durumda kullanıma sunuldu.

Projenin servis kısmında oldukça zorluk çekildi. Daha önce bu konuda çok fazla bilgi

sahibi olunmadıgı için önce arastırmalar yapılarak daha sonra kodlama ve çıkan hataların

çözümü ile ugrasıldı. veriler json formatında geldigi için bunların ayristilması ve sorguları

üzerinde birazda olsa bilgi sahibi olundu.

Bu uygulamanın daha bir çok gelistirilebilir yöneleri bulunmaktadır. Bunlardan ilk ve en

önemlilerinden birisi kullanıcıların resimlerini alarak daha fazla görsellik ön plana çıka-

rılabilir. Daha Sonra ise resim ve video transferi eklenebilir. Bu da önemli ayrıntılardan

biridir. Kullanıcılardan gelen geri bildirimler ile dosya transferi, sesli ve görüntülü ko-

nusma gibi özellikler eklenebilir.

12

Page 20: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Kaynaklar

[1] https://parse.com/ [Ziyaret Tarihi: 4 Mart 2015]

[2] https://www.sinch.com/docs/android/user-guide/ [Ziyaret Ta-

rihi: 17 Mart 2015]

[3] http://stackoverflow.com/questions/7238243/

how-to-use-notification-with-sound-and-vibration [Ziyaret

Tarihi: 17 Mart 2015]

[4] http://developer.android.com/reference/android/content/

BroadcastReceiver.html [Ziyaret Tarihi: 25 Mart 2015]

[5] http://developer.android.com/guide/topics/ui/controls/

button.html [Ziyaret Tarihi: 1 Nisan 2015]

[6] https://gelecegiyazanlar.turkcell.com.tr/konu/android/

egitim/android-201/listview-kullanimi [Ziyaret Tarihi: 3 Nisan

2015]

[7] https://parse.com/docs/android_guide#

queries-fromlocaldatastore [Ziyaret Tarihi: 7 Nisan 2015]

13

Page 21: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

EKLER

Ek 1

...

private void promptSpeechInput() {

Intent intent = new

Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,

RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,

Locale.getDefault());

intent.putExtra(RecognizerIntent.EXTRA_PROMPT,

getString(R.string.speech_prompt));

try {

startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);

} catch (ActivityNotFoundException a) {

Toast.makeText(getApplicationContext(),

getString(R.string.speech_not_supported),

Toast.LENGTH_SHORT).show();

}

}

@Override

protected void onActivityResult(int requestCode, int

resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

switch (requestCode)

{

case REQ_CODE_SPEECH_INPUT:

if (resultCode == RESULT_OK && null != data)

{

14

Page 22: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

ArrayList<String> result = data

.getStringArrayListExtra

(RecognizerIntent.EXTRA_RESULTS);

messageBodyField.setText(messageBodyField

.getText().toString()+" "+result.get(0));

}

break;

}

}

...

15

Page 23: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Ek 2

public class Uygulama extends Application {

@Override

public void onCreate() {

super.onCreate();

//Parse.initialize(this, "app-id", "client-key");

//siteden verilen app-id ve client-key i yazdim.

Parse.initialize(this,

"rHbI4u13TW9WZhqnZQY7iwcBtzE1HJfdbBmGQS2f",

"vAuk6KGKRdKmJdfG2Wl3YKfGxJytFKAD3G6jlxzI");

}

}

16

Page 24: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

Ek 3

public class MessageService extends Service implements

SinchClientListener,MessageClientListener {

//Bu servis api ile gelen ve gonderilen mesajlari yonetecek

//üyelik sonrasi siteden verilen bilgiler

private static final String APP_KEY =

"0afa17cd-4b25-451a-81ca-0532a8d55790";

private static final String APP_SECRET =

"WuqO8AWnzUK83MqJH2h40w==";

private static final String ENVIRONMENT = "sandbox.sinch.com";

private SinchClient sinchClient = null;//kullandigim api

public void startSinchClient(String username) {

sinchClient = Sinch.getSinchClientBuilder()

.context(this).userId(username)

.applicationKey(APP_KEY)

.applicationSecret(APP_SECRET)

.environmentHost(ENVIRONMENT).build();

sinchClient.addSinchClientListener(this);

sinchClient.setSupportMessaging(true);//mesajlasmayi acip

sinchClient.setSupportCalling(false); //aramayi kapattim

sinchClient.setSupportActiveConnectionInBackground(true);

sinchClient.checkManifest();

sinchClient.start();

}

}

17

Page 25: 2015 - Gürkan Mustafa Çakır - Android mesajlaşma uygulaması

ÖZGEÇMIS

KISISEL BILGILER

Adı Soyadı :Gürkan Mustafa ÇAKIR

Uyrugu : T.C.

Dogum Yeri ve Tarihi: KÜTAHYA / 30.07.1993

Adres : Kredi ve Yurtlar Kurumu E Blok

Tepebası/ BILECIK

Telefon : +90 536 441 0985

e-mail : [email protected]

EGITIM DURUMU

Lisans Ögrenimi : Bilecik Seyh Edebali Üniverstesi, Bilecik

Bitirme Yılı : 2012

Lise : Fatih Anadolu Lisesi, Kütahya

IS DENEYIMLERI

Yıl : 2014

Kurum : Biltay Teknoloji

Stajlar : Biltay Teknoloji

ILGI ALANLARI

YABANCI DILLER : Ingilizce

18