PAMUKKALE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ
HATIRLA ANDROID UYGULAMASI
LİSANS TEZİ Alpay ERKUN (16253027)
Bilgisayar Mühendisliği
Tez Danışmanı: Dr. Ögr. Üyesi Elif HAYTAOĞLU
13 MAYIS 2020
Pamukkale Üniversitesi Bilgisayar Mühendisliği Bölümü, 16253027 numaralı Lisans Öğrencisi Alpay ERKUN, ilgili yönetmeliklerin belirlediği gerekli tüm şartları yerine getirdikten sonra hazırladığı “HATIRLA ANDROID UYGULAMASI ” başlıklı tezini aşağıdaki imzaları olan jüri önünde başarı ile sunmuştur.
Tez Danışmanı :
Dr. Ögr. Üyesi Elif HAYTAOĞLU ..............................
Jüri Üyeleri :
Prof. Dr. Adı SOYADI Pamukkale Üniversitesi
..............................
Prof. Dr. Adı SOYADI Pamukkale Üniversitesi
..............................
Teslim Tarihi : 20 Mayıs 2020 Savunma Tarihi : 21 Mayıs 2020
iii
iv
Önsöz Bu tez çalışmasında, telefon kullanmakta zorlanan insanlar için pratik olması amaçlanan bir hatırlatıcı mobil uygulama geliştirilmesi amaçlanmıştır. Bu uygulama gibi benzer birçok uygulama bulunsa da bu tez çalışmasında geliştirilen uygulamnın daha pratik ve kullanışlı olması temel farklılıklardan biridir. Kullanıcının rahatlıkla ses kaydı yapabildiği, not ekleyebildiği, gelecekteki bir tarihi seçebildiği, saat ve konum ayarını kolaylıkla yapabildiği bir Android uygulamasıdır. Telefon kullanmakta zorlanan insanlar dışında diğer herkesin kullanabildiği, her iş için geçerli olabilen bir uygulamadır. Evde, işte, okulda istenildiği gibi kullanılabilir ve her türlü ihtiyacınız için hatırlatma oluşturabilirsiniz. Başta ilaç, alışveriş, ödev, iş yerinde yapılması gerekenler olmak üzere konum bazlı olarak da yapacağınız görüşmeleri, uğrayacağınız yerleri kolaylıkla hatırlamanıza olanak sağlayan bir uygulamadır. Öncelikle tez danışmanım olan Dr. Ögr. Üyesi Elif HAYTAOĞLU’na teşekkürlerimi sunmak istiyorum. Tez dersinden önce de okul hayatım boyunca okul ile ilgili her türlü soruda kapısını rahatlıkla çalabildim. Bu tezde her türlü desteği bana sunduğu için ve uzak, yakın fark etmeksizin ilgisini esirgemediği için bir kez daha teşekkür ederim. Ayrıca Pamukkale Üniversitesi Bilgisayar Bölümü öğretmenlerimiz de her zaman bu yaklaşımda olduğu için ve yine her zaman her türlü sorunda ilgi alaka gösterdikleri için onlara da teşekkür ederim.
Tezin savunulduğu ay yıl
Alpay ERKUN
v
vi
İçindekiler Sayfa ÖNSÖZ .................................................................................................................... v İÇİNDEKİLER ....................................................................................................... vii ÇİZELGE LİSTESİ................................................................................................ ix ŞEKİL LİSTESİ...................................................................................................... xi ÖZET ....................................................................................................................... xiii SUMMARY ............................................................................................................. xv 1. PROBLEM NEDİR?........................................................................................... 1 1.1 Problemin Amacı Nedir?................................................................................ 1 1.2 Problemle İlgili Gerçekleştirmek İstediklerim ............................................... 2 2. LİTERATÜR BİLGİSİ....................................................................................... 3 2.1 Google Keep ................................................................................................... 3 2.1.1 Uygulamam ile arasındaki farklılıklar.................................................... 3 2.2 Evernote.......................................................................................................... 4 2.2.1 Uygulamam ile arasındaki farklılıklar.................................................... 5 2.3 Remember The Milk....................................................................................... 6 2.3.1 Uygulamam ile arasındaki farklılıklar.................................................... 6 2.4 Any.do............................................................................................................. 7 2.4.1 Uygulamam ile arasındaki farklılıklar.................................................... 7 2.5 Microsoft To Do ............................................................................................. 8 2.5.1 Uygulamam ile arasındaki farklılıklar.................................................... 9 3. PROBLEMİ ÇÖZMEK İÇİN KULLANILAN TEKNOLOJİLER............... 11 3.1 Android Studio ............................................................................................... 11 3.1.1 Temel özellikler ...................................................................................... 11 3.2 Java Programlama Dili ................................................................................... 13 3.2.1 Çalışma mantığı...................................................................................... 13 3.2.2 Java yazımı (sözdizimi) .......................................................................... 13 3.2.3 Avantajları............................................................................................... 14 3.3 Google Maps API ........................................................................................... 15 3.4 SQLite............................................................................................................. 15 3.4.1 Özellikleri ............................................................................................... 15 4. AKIŞ DİYAGRAMI ............................................................................................ 17 5. VERİ TABANI .................................................................................................... 19 6. SONUÇLAR ........................................................................................................ 21 7. PROJE DAHA NE KADAR İLERLETİLEBİLİR?........................................ 33 7.1 Yaptıklarım ..................................................................................................... 33 vii
7.2 Yapılabilecekler .............................................................................................. KAYNAKLAR......................................................................................................... EKLER .................................................................................................................... EK A.1.................................................................................................................. ÖZGEÇMİŞ ............................................................................................................
viii
33 35 37 39 41
Tablo Listesi Sayfa Tablo 5.1 : Veri tabanÄą tablosu............................................................................... 19
ix
x
Şekil Listesi Sayfa Şekil 2.1 Şekil 2.2 Şekil 2.3 Şekil 2.4 Şekil 2.5 Şekil 2.6 Şekil 2.7 Şekil 2.8 Şekil 2.9 Şekil 2.10 Şekil 2.11 Şekil 2.12 Şekil 2.13 Şekil 2.14 Şekil 3.1 Şekil 3.2 Şekil 3.3 Şekil 3.4 Şekil 4.1 Şekil 6.1 Şekil 6.2 Şekil 6.3 Şekil 6.4 Şekil 6.5 Şekil 6.6 Şekil 6.7 Şekil 6.8 Şekil 6.9 Şekil 6.10 Şekil 6.11 Şekil 6.12 Şekil 6.13 Şekil 6.14
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
Google Keep logosu. ......................................................................... Google Keep 1. ekran görüntüsü. ...................................................... Google Keep 2. ekran görüntüsü. ...................................................... Evernote logosu. ................................................................................ Evernote 1. ekran görüntüsü. ............................................................. Evernote 2. ekran görüntüsü. ............................................................. Remember The Milk logosu. ............................................................. Remember The Milk ekran görüntüsü............................................... Any.do logosu. ................................................................................... Any.do 1. ekran görüntüsü................................................................. Any.do 2. ekran görüntüsü................................................................. Microsoft To Do logosu..................................................................... Microsoft To Do 1. ekran görüntüsü. ................................................ Microsoft To Do 2. ekran görüntüsü. ................................................ Android Studio logosu....................................................................... Java logosu......................................................................................... Google Maps API logosu. ................................................................. SQLite logosu. ................................................................................... Akış diyagramı. ................................................................................. Uygulamamın logosu......................................................................... Uygulamanın açılışında gelen ilk ekran. ........................................... Hatırlatıcı Oluştur butonuna basıldıktan sonra gelen ekran. ............. Hatırlatıcıları Göster butonuna basıldıktan sonra gelen ekran. ......... Ses kaydetme 1. ekran görüntüsü. ..................................................... Ses kaydetme 2. ekran görüntüsü. ..................................................... Ses kaydetme 3. ekran görüntüsü. ..................................................... Ses kaydetme 4. ekran görüntüsü. ..................................................... Ses kaydetme 5. ekran görüntüsü. ..................................................... Saat seçimi için ekran görüntüsü. ...................................................... Tarih seçimi için ekran görüntüsü. .................................................... Konum seçimi için ilk açılıştaki ekran görüntüsü. ............................ Konum seçimi için konum girilmiş ekran görüntüsü. ....................... Hatırlatıcı oluşturmak için tüm tercihlerin yapıldığı bir ekran görüntüsü............................................................................................. Şekil 6.15 : Hatırlatıcının oluşturulduğuna dair bildirimin yer aldığı ekran görüntüsü............................................................................................. xi
3 4 4 5 5 5 6 6 7 8 8 9 9 9 11 13 15 15 17 21 21 22 22 23 23 23 24 24 25 25 26 26 27 27
Şekil 6.16 : Birkaç hatırlatıcı oluşurduktan sonra hatırlatıcıları göster butonuna basılmış ekran görüntüsü............................................................ Şekil 6.17 : Hatırlatıcıları göster ekranında ses kaydı var olan hatırlatıcı seçilmişkenki ekran görüntüsü............................................................ Şekil 6.18 : Hatırlatıcıları göster ekranında ses kaydı olmayan bir hatırlatıcı seçildikten sonraki ekran görüntüsü.................................................... Şekil 6.19 : Hatırlatıcılar arasında 2. hatırlatıcı için düzenle butonuna basıldıktan sonraki ekran görüntüsü. .................................................. Şekil 6.20 : Hatırlatıcıları göster ekranında 2. hatırlatıcı düzenlendikten sonraki ekran görüntüsü...................................................................... Şekil 6.21 : Hatırlatıcıları göster ekranında deneme3 not bilgisi olan hatırlatıcı silindikten sonraki ekran görüntüsü.............................................. Şekil 6.22 : Bildirim örneği için oluşturulan hatırlatıcı için yapılan tercihlerin ekran görüntüsü................................................................................... Şekil 6.23 : Oluşturulan hatırlatıcının hatırlatıcıları göster ekranındaki görüntüsü...................................................................................................... Şekil 6.24 : Oluşturulan hatırlatıcının zamanı geldiğinde kullanıcıya bildirim olarak gösterilmesi. ............................................................................. Şekil 6.25 : Kullanıcıya hatırlatılan olayın bildirimine basıldığında açılan ekranın görüntüsü................................................................................
xii
28 28 29 29 30 30 31 31 32 32
HATIRLA ANDROID UYGULAMASI
Özet Bu tez bir hatırlatıcı uygulamasıdır ve Android işletim sistemi için programlanmıştır. Uygulamanın genel amacı kullanıcıdan bilgi alır ve aldığı bilgiler doğrultusunda kullanıcıya hatırlatma işlemini gerçekleştirir. Uygulama ilk açıldığında kullanıcıya yeni hatırlatıcı oluştur ya da oluşturulanları göster şeklinde iki seçenek sunar. Hatırlatıcı oluştur seçeneği ile adından da anlaşıldığı gibi yeni bir hatırlatıcı oluşturulur. Oluşturulan hatırlatıcıları göster seçeneği sayesinde ise oluşturulmuş hatırlatıcılar kullanıcıya listelenir ve listelenen hatırlatıcıları düzenleme, silme ve eğer ses kaydı varsa dinleme işlemleri gerçekleştirilebilir. Yeni hatırlatıcı oluşturmak isterse karşısına gelen ekrandaki bilgileri doldurması gereklidir. Not bilgisi ve ses kaydetme olarak iki tane yöntem ile hatırlatılacak olayın bilgisi alınabilir. Not bilgisini girmek zorunludur ama ses kaydetmek zorunlu değildir. Not bilgisi için 20 karakter sınırı konulmuştur. Ayrıca saat bilgisi, tarih bilgisi ve konum bilgisi olarak 3 yöntem ile hatırlatılma zamanı veya yerinin bilgisi belirlenebilmektedir. Bu 3 yöntemden en az birinin kullanılması zorunlu kılınmıştır. Aynı anda 3 yöntem birlikte de kullanılabilir. Bu alanlar doldurulduktan sonra oluştur butonuna basılarak hatırlatıcı oluşturma işlemi başarıyla gerçekleşir. Eğer hatırlatıcıları göster seçeneği seçilirse karşımıza gelen ekranda bir tablo içinde oluşturulmuş tüm hatırlatıcılar listenelir. Bu ekranda ayrıca silmek için, düzenlemek için ve ses kaydı varsa dinlemek için 3 tane gizli buton vardır. Bu gizli butonlar, listelenen hatırlatıcılardan birine basıldığında aktif olacaktır. Silmek için ve düzenlemek için olan butonlar aktif olsa da ses kaydı dinleme butonunun aktif olması için o hatırlatıcının ses kaydına sahip olması gerekir. Aksi halde ses kaydını dinlemek için olan buton gizli kalacaktır. Bu uygulamanın programlanması ve çalıştırılması için Android Studio, Java Programlama Dili, Google Maps API ve SQLite teknolojilerinden yararlanılmıştır. Android Studio, uygulamanın tüm aşamalarının hazırlandığı programdır. Java dilini kullanarak Android Studio üzerinden uygulamanın tüm aşamaları kodlanmıştır. Android Studio içinde bulunan emülatör sayesinde de aşama aşama programın hangi seviyede olduğu gözlemlenerek kontrol edilmiştir. Google Maps API sayesinde kullanıcıdan konum bilgisi alınmıştır. Bu servis tüm dünya haritasına güncel bir şekilde erişebilme ve o harita üzerinden konum seçebilme imkanını sağlamaktadır. SQLite, Android Studio sayesinde kullanıcıdan alınan bilgileri saklamak için kullanılan bir veri tabanıdır. Bu veri tabanı sayesinde bilgiler tutulabilmiş, düzenlenebilmiş, silinebilmiş ve kullanıcıya listenebilmiştir. xiii
xiv
THESIS TITLE HERE SECOND LINE IF NECESSARY THIRD LINE IF NECESSARY, FIT TITLE IN THREE LINES SUMMARY This thesis is a reminder application and is programmed for the Android operating system. The general purpose of the application receives information from the user and reminds the user in line with the information received. The main purpose of this thesis is to make a reminder application that is intended to be practical for people who do not have a command of phone use or have difficulty. All today’s reminder apps have a very professional look and the phone needs to be mastered in order to use it. Almost all applications made in this area offer its users an interface with small symbols. Those who do not have the information necessary for the use of such interfaces cannot benefit from these applications or need someone else’s help. In this thesis, it is aimed to solve this problem. As we know, forgetfulness has become common today and Alzheimer’s disease has also become widespread. Reminder applications come to the fore in facilitating the lives of people who have such problems. Thanks to these applications, the lives of people who experience such problems become easier, but almost all applications are made for users who know how to use the phone and who know the technology well and have a very difficult use. In this thesis, an application has been made based on such applications and considering the user mass. Although the users who do not control the phone and people who are forgetful are based on the user base, this application will be available to all users. It will not matter whether it is dominant on the phone and it will have a practical use. When the application is first opened, it provides the user with two options: create new reminder or show created ones. With the option to create a reminder, a new reminder is created, as the name suggests. Thanks to the option to show reminders created, the created reminders are listed to the user, and editing, deleting and listening to the listed reminders can be performed if there is a sound recording. If he wants to create a new reminder, he must fill in the information on the screen. The information to be reminded can be obtained by two methods as note information and sound recording. It is mandatory to enter note information, but recording voice is not mandatory. A 20 character limit has been set for grade information. In addition, the time or location information can be determined by 3 methods as time information, date information and location information. It is mandatory to use at least one of these 3 methods. 3 methods can be used simultaneously. After these fields are filled in, the process of creating a reminder takes place by clicking the create button.
xv
If Show Reminders option is selected, all reminders created in a table are listed on the screen. There are also 3 hidden buttons on this screen to delete, edit and listen to audio recordings. These hidden buttons will be active when one of the listed reminders is pressed. Although the buttons for deleting and editing are active, the reminder must have an audio recording for the audio recording button to be active. Otherwise, the button to listen to the voice recording will remain hidden. Android Studio, Java Programming Language, Google Maps API and SQLite technologies have been used to program and run this application. Android Studio is the program in which all stages of the application are prepared. Using Java language, all stages of the application are coded via Android Studio. Thanks to the emulator in Android Studio, it was checked by observing the level of the program step by step. Thanks to the Google Maps API, location information has been received from the user. This service provides the opportunity to access the world map in a current way and to select a location on that map. SQLite is a database used to store information received from the user, thanks to Android Studio. Thanks to this database, information could be kept, edited, deleted and listed to the user.
xvi
1. PROBLEM NEDİR?
Bu uygulamanın yazılmasındaki temel neden, piyasada bulunan tüm hatırlatıcı uygulamalırının telefonu kullanmasını çok iyi bilen kullanıcılara yönelik olmasıdır. Piyasadaki tüm hatırlatıcılar çok profesyonel bir görünüme sahip olup genellikle yazı yerine semboller ile kullanıcılara sunuluyor. Örneğin Hatırlatıcı Oluştur yazan bir buton koymak yerine "+" sembolü kullanılıyor ve bu sembole basılması gerektiğini bilmeyen kullanıcılar için gereksiz bir zorluk daha uygulamanın ilk aşamasında karşılarına çıkıyor. Ben bu problemi düşünürken ailemde yaşı ilerlemiş ve bu tarz profesyonel uygulamaları kullanması çok zor olan kişileri göz önüne aldım. Ayrıca göz önünde bulundurduğum başka bir kullanıcı kitlesi ise alzheimer hastaları ya da bu hastalık derecesinde olmasa bile sık sık bir şeyleri kolaylıkla unutabilen insanlar. Burada problemin göründüğünden büyük olduğunu anlamak önemli çünkü verdiğim örnekteki gibi "+" sembolünün neden orada olduğunu bu tarz uygulamaları kullanmayan kişilerin bilmesi çok zor ki "+" sembolü bu problemlerden sadece birisi.
1.1 Problemin Amacı Nedir? Bu problemin amacı, profesyonel kullanıma alışık olmayan kullanıcıların da hatırlatıcı uygulamasından yararlanması ve günlük yaşamını kolaylaştırması. Bir alzheimer hastası programın varlığını bile unutabilir ve programı her açtığında yeni baştan sembollerle karşılaşması çok can sıkıcı bir durum olur. Onun yerine programı açtığında ne olduğunu anlayabildiği bir şekilde kullanıcıya yardımcı olmak daha sağlıklı olacaktır. Bu problem tabii ki sadece yaşı ilerlemiş ya da unutkanlık çeken insanlar için değil tüm herkese pratik ve kolay şekilde hatırlatıcı kullanımını sağlamak. Sadece iki üç bilgi girip butona basarak hatırlatıcının hızlıca ve pratik bir şekilde oluşturulması varken küçük sembollerle ve sürekli değişen tasarımlarla kullanıcıyı yormak pek sağlıklı bir yol değil.
1
1.2 Problemle İlgili Gerçekleştirmek İstediklerim Bu problem için en başlıca istediğim şey anlaşılır butonlarla kullanıcıya kolaylık sağlamak. Örneğin, hatırlatıcı oluşturmak için "Hatırlatıcı Oluştur" isimli bir buton koymak. Kullanıcının uygulamayı her açtığında bu neydi diye düşünmemesi için her alanın anlaşılır olmasına dikkat etmek. Örneğin, saat bilgisi girilecekse "Saat Seç" butonu koymak ve bu butonu destekleyecek sembol ve başlık eklemek. Kullanıcı konum seçerken haritadan uzun uzun arama yapması yerine seçeceği yeri yazma imkanı vermek. Böylelikle arama çubuğuna yazdığı yer hemen haritada seçilmiş olacak. Örneğin, arama çubuğuna "pamukkale üniversitesi mühendislik fakültesi" yazdı. Otomatik olarak yazılan yer işaretlenecek.
2
2. LİTERATÜR BİLGİSİ 2.1 Google Keep Google Keep, dünyaca ünlü arama motoru Google tarafından geliştirilen bir not alma servisidir. Google Keep, hem Android cihazlarında hemde bilgisayarlarda kullanılabilmektedir [1].
Şekil 2.1 : Google Keep logosu. Yazılı not alma, resimli not alma, sesli not alma ve onay listesi (checklist) gibi farklı türlerde not almanızı sağlar. Ayrıca not alındıktan sonra bu notu hatırlatıcıya çevirme imkanı da verir. Adresler, telefon numaraları, yapılacaklar listeleri, tatil planları, borç defteri ya da işle alakalı herhangi bir bilgiyi Google Drive ile senkronize olarak not alınabilir. 2.1.1 Uygulamam ile arasındaki farklılıklar Google Keep, temelinde bir not alma uygulamasıdır. Bu uygulamayı kullanmak için üye olmak şart koşulmuş. Üye olup notunuzu girdikten sonra o notu hatırlatıcıya çevirmeniz gerekmektedir. Bu uygulamada en dikkat çeken farklılık, kullanıcılara sembollerin ağırlıklı olduğu bir arayüz sunması. Bu sembollerin bazı kullanıcılar için en büyük problemlerimizden biri olduğundan bahsetmiştim.
3
Şekil 2.2 : Google Keep 1. ekran görüntüsü.
Şekil 2.3 : Google Keep 2. ekran görüntüsü.
Bu uygulamada da not kaydetmek için 1. ekran görüntüsünde de görüldüğü gibi sağ altta renkli bir "+" sembolü var. O sembole bastıktan sonra notunuzu yazıyorsunuz ve 2. ekran görüntüsünde görünen sağ üstte bulunan "çan içindeki +" sembolüne basmanız gerekiyor. O sembole basıldıktan sonra gelen ekranda tarih, saat ve konum bilgilerini girip sağ üstte bulunan "tik" sembolüne basılması gerekiyor. Bu işlemlerden sonra hatırlatıcınız hazırlanmış oluyor ama daha önce de söylediğim gibi bu aşamaları gerçekleştirmek için semboller arasında doğru seçim yapmanız gerekiyor yani tüm sembolleri iyi bilmeniz gerekli.
2.2 Evernote Evernote çapraz platform not alma, düzenleme ve arşivleme uygulaması. Merkezi ABD’nin Redwood City şehrinde bulunan Evernote Corporation tarafından geliştirilmekte olan Evernote uygulaması ile metin, web sayfası, fotoğraf, ses kaydı, el yazması şeklinde not alınabilmektedir. Aldığınız notları hatırlatıcıya çevirme özelliği de mevcuttur [2].
4
Şekil 2.4 : Evernote logosu. 2.2.1 Uygulamam ile arasındaki farklılıklar Evernote da temel olarak bir not alma uygulamasıdır ve yine sembollerin ağırlıklı olduğu bir arayüze sahiptir. Oluşturduğunuz notu hatırlatıcıya çevirmek için hangi sembolün neyi ifade ettiğini bilmek zorundasınız. Ayrıca uygulamayı kullanmak için üyelik şart.
Şekil 2.5 : Evernote 1. ekran görüntüsü.
Şekil 2.6 : Evernote 2. ekran görüntüsü.
Not almak için 1. ekran görüntüsünde de görüldüğü gibi orta altta yer alan "+" sembolüne basılması gereklidir. Bu sembole bastıktan sonra gelen ekranda notunuzu yazmalı ve hatırlatıcı kurmak için 2. ekran görüntüsünde bulunan sağ üstteki "çalar saat" sembolüne basılmalıdır. Yine 2. ekran görüntüsündeki gibi bir yer açılmakta ve 5
bu yerde saat, tarih ayarları yapılmaktadır. Bu uygulamadaki en büyük eksikliklerden biri olarak konum bazlı hatırlatma yapılamaması ön plana çıkmaktadır.
2.3 Remember The Milk Remember The Milk, kısa – orta vadeli plan ve projelerinize ilişkin görevlerinizi / işlerinizi listeleyebileceğiniz, bunları önceliklendirebileceğiniz, yine kendi yaratacağınız etiketlerle ilişkilendirerek hatırlatma zamanı ve notlar ekleyebileceğiniz, fonksiyonel bir yazılımdır. Oluşturduğunuz olayları hatırlatıcıya çevirmeniz için de birçok seçenek sunar [3].
Şekil 2.7 : Remember The Milk logosu.
2.3.1 Uygulamam ile arasındaki farklılıklar
Şekil 2.8 : Remember The Milk ekran görüntüsü. 6
Remember The Milk uygulaması not almayı ya da yapacaklarınızı kaydetmeyi öncelik olarak tanıyor ve notunuzu yazdıktan sonra hatırlatıcıya çevrilebiliyor. Uygulama ilk açıldığında üye olmanızı istiyor ve üye olduktan sonra notunuzu oluşturmanız için "+" sembolüne basmanız gerekiyor. Sembole bastıktan sonra gelen ekranda notunuzu girmeniz isteniyor. Ekran görüntüsünde de görüldüğü gibi bir çok sembol mevcut ve o sembollerden size gerekli olanı bulup gerekli alanları doldurmanız bekleniyor. Bu uygulamanın sembol ağırlıklı olmasının yaşattığı zorluğun yanında Türkçe dil desteğine sahip olmaması da problemimizin kaynağı olan kullanıcı kitlesine pek hitap etmediğini gösteriyor.
2.4 Any.do Any.do uygulaması, yapılacak işlerinizi not almanıza yarar. Facebook, Google ve Mail adresleri ile giriş yapılabilen uygulamaya, arkadaşlar ekleyerek görev paylaşımı yapılabilmektedir. Telefon ekranına Widget oluşturma özellği sayesinde, alınan notlar sürekli hatırlatılmaktadır [4].
Şekil 2.9 : Any.do logosu.
2.4.1 Uygulamam ile arasındaki farklılıklar Any.do uygulaması, temelinde bir not tutucudur. Oluşturduğunuz nota çeşitli düzenlemeler yaparak bir hatırlatıcıya dönüştürmeniz mümkündür ama o kadar çok seçenek vardır ki arayüzü biraz karmaşık gelebilir. Bu seçenkler arasından hatırlatıcıya ait olanları ayırt etmeniz ve düzenlemeniz gerekmektedir.
7
Şekil 2.10 : Any.do 1. ekran görüntüsü.
Şekil 2.11 : Any.do 2. ekran görüntüsü.
1. ekran görüntüsünde görüldüğü gibi birçok gün seçeneği vardır ve bu biraz kafa karıştırıcı olabilir. "+" sembolüne basarak bu gün seçeneklerini olaya karıştırmadan notunuzu oluşturma aşamasına geçebiliyorsunuz. Bu sembole bastıktan sonra karşımıza 2. ekran görüntüsündeki gibi bir ekran geliyor ve birçok farklı seçenek mevcut. Burada hatırlatıcıya ait olanları ayırt edip düzenlemenizi yapmanız gerekiyor ki butonların da problemimize hitap eden kullanıcılar için biraz küçük kaldığını gözlemlemek mümkün.
2.5 Microsoft To Do Microsoft To Do uygulaması, liste oluşturma, listeye görev ekleme ve listedeki görevleri ya da listeden bağımsız oluşturulan görevleri hatırlatma imkanı sağlıyor. Wunderlist adlı ünlü not tutma uygulamasının Microsoft tarafından satın alınmasından sonra Wunderlist yerine piyasaya sürülen Microsoft To Do, Wunderlist ekibi tarafından geliştirilmiştir.
8
Şekil 2.12 : Microsoft To Do logosu. 2.5.1 Uygulamam ile arasındaki farklılıklar Microsoft To Do, Microsoft hesabı ile kayıt olmayı zorunlu tutuyor. Bu kayıt gerçekleştikten sonra ise birçok seçenek sunuyor ki bu seçenekler biraz kafa karıştırıcı gözüküyor.
Şekil 2.13 : Microsoft To Do 1. ekran görüntüsü.
Şekil 2.14 : Microsoft To Do 2. ekran görüntüsü.
9
1. ekran görüntüsündeki gibi bir ekrandan "Görevler" seçeneğini seçip çıkan ekranda ise "Yeni Görev" diyerek hatırlatılacak olan görevin başlığını girmeniz isteniyor. Sonrasında 2. ekran görüntüsünde görüldüğü gibi bir ekran geliyor karşımıza. Bu ekranda bulunan birçok seçenek arasından da "Bana Anımsat" denmesi ve tarih, saat bilgisinin girilmesi gerekiyor. Microsoft To Do uygulamasında konum bazlı bir hatırlatma imkanı sunulmuyor. Genel yapısıyla basit olmadığı açık olan uygulama çok profesyonel bir kullanıma sahip ve problemin temelinde yer alan kullanıcı kitlesi için uygun değil.
10
3. PROBLEMİ ÇÖZMEK İÇİN KULLANILAN TEKNOLOJİLER 3.1 Android Studio Android Studio; telefonlar ve tabletler, Android Auto, Android Wear ve Android TV de dahil olmak üzere her türlü Android cihazda çalışan yüksek kalitede, başarılı sonuçlar veren uygulamalar geliştirmek için en hızlı araçları sağlar. Google’ın resmi Android IDE’si olan Android Studio, akıllı bir kod düzenleyici ve hata ayıklayıcı, performans analiz araçları, emülatörler ve daha pek çok araç dahil olmak üzere uygulama geliştirmek için ihtiyaç duyduğunuz her şeyi içerir [5].
Şekil 3.1 : Android Studio logosu.
3.1.1 Temel özellikler • Gelişmiş kod tamamlama, uygulamanın iç yapısını yeniden düzenleyerek geliştirme (refactoring) ve kod analizi yapabilen akıllı kod düzenleyici. • Anında Çalıştırma kod ve kaynak değişikliklerinin bir cihaz veya emülatör üzerinde çalışan uygulamanıza hızlı bir şekilde yansıtılmasını sağlayarak düzenleme, derleme ve çalıştırma süreçlerini hızlandırır. • Sanal ivme ölçer, ortam sıcaklığı, manyetometre ve diğer sensörlerle zengin özelliklere sahip ve hızlı Android Emülatör. • Tüm Android platformları desteklenir: Android telefonlar ve tabletler, Android Wear, Android Auto ve Android TV. 11
• Gradle tabanlı esnek yapılı derleme sistemi derleme otomasyonu, bağımlılık yönetimi ve özelleştirilebilir APK oluşturma yapılandırmaları sunar. • Yaygın olarak kullanılan uygulama özelliklerini oluşturmanıza yardımcı olacak kod şablonları. • Uygulamaları daha sezgisel bir şekilde oluşturmak için plan modu ve sürükleyip bırakarak yerleşim düzenlemeyi destekleyen Zengin Yerleşim Düzenleyici. • Büyük, karmaşık düzenlerin düz ve sadeleştirilmiş bir hiyerarşiye göre tasarlanması için Yeni Sınırlama Düzeni yöneticisi (Android API seviye 9’dan önceki sürümlerle uyumludur). • Performans, kullanışlılık, sürüm uyumluluğu ve uygulama kodunuzdaki diğer sorunları tespit etmek için Lint araçları. • Uygulamanızda hızlıca JNI bileşenleri oluşturabilmeniz için C/C++ kod düzenleme ve LLDB tabanlı hata ayıklama desteği. • Firebase SDK, Firebase Test Lab, Firebase Uygulama Dizinine Ekleme ve Google Cloud Platform için yerleşik destek. • Her bileşenin boyuta olan katkısını anlayabilmeniz için APK’larınızın içeriğini incelemenize olanak tanıyan APK Analizcisi. • Uygulamanızın etkileşimlerini kaydederek kullanıcı arayüzü testleri oluşturan ve ardından kullanıcı arayüzü test kodunu çıkaran Espresso Test Kaydedici (Beta). • Çalışma zamanında uygulamalarınızın görünüm hiyerarşisini incelemek için Düzen Denetleyici. • Android cihazınızda OpenGL ES komut akışını yakalayan ve analiz için bunu Android Studio’nun içinde yeniden oynatan GPU Hata Ayıklayıcısı (beta) [5].
12
3.2 Java Programlama Dili Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen (yorumlanan-interpreted) bir dildir [6].
Şekil 3.2 : Java logosu.
3.2.1 Çalışma mantığı Yazılımcı Java kodunu yazar. Bu kod bir Java derleyicisi ile derlenir. Sonuçta "bytecode" adı verilen bir tür sanal makine kodu ortaya çıkar. Düzlem bağımsızlığını sağlayan bytecode’dur. Çünkü bir kere bytecode oluştuktan sonra yazılım sanal makine içeren tüm işletim sistemlerinde çalışabilmektedir.Bu bytecode Java Sanal Makinesi (İng., Java Virtual Machine) tarafından işletilir. Bu aşama, her bir bytecode komutunun teker teker yorumlanması ile icra edilebileceği gibi, anında derleme kullanılarak da gerçekleştirilebilir [6]. 3.2.2 Java yazımı (sözdizimi) class: Sınıf tanımlayabilmek için class ön eki şarttır. public: Sınıfın dışarıdan erişebilir olduğu, static: Sınıf tarafından paylaşıldığı, void: Bir değer döndürmediği anlamına gelir. Public ve Static’e erişim belirleyicisi (access specifier) de denir. Void’e dönüş tipi (return type) de denir. String args[]: Parantezin içinde yöntemin aldığı parametreleri belirleriz. "String" sınıf adı, "args" da parametre adıdır. "[]" ise args’ın bir dizi (array) olduğunu belirtiyor. 13
"System.out.println();" ile yazımızı yazdırıyoruz ve yeni satıra geçmesini sağlıyoruz. Yazımızı "System.out.print("Merhaba Dunya!");" ile de yazdırabilirdik. Fakat imleç yeni satıra geçmezdi [6]. 3.2.3 Avantajları • Güvenli bir programlama dilidir. İndirdiğiniz andan itibaren uzun yıllar sorunsuz şekilde kullanabilirsiniz. Diğer sistemlere zarar vermemesi güvenilirliği artıran bir özelliktir. İnternet uygulamalarına karşı sağladığı güvenlik de artı demektir. Erişimde güvenliği sağlar. Kredi kartı bilgilerinin ve diğer kişisel önemli bilgilerin korunması için önem teşkil etmektedir. • Taşınabilir özelliğe sahiptir. Farklı ortamlarda çalıştırılabilmesi bu artıyı sağlar. İşletim sistemi değiştiği zaman da kullanılır. Transfer edilebilir özelliği de vardır. • Nesne odaklıdır. C++ nesne yönelimlinin özelliklerinden yararlanmaktadır. • Okuyuculu ve güçlüdür. Yani çalışma zaman kontrolleri doğrultusunda hatasız bir şekilde kullanım sağlamayı destekler. Çok kullanıcılı sistemlerle uyumlu olması da artı sağlar. • Tarafsız bir yapısı vardır. Yani donanımdan bağımsız bir şekilde kurulur. Bir işletim sistemine ya da bir makineye bağlı biçimde çalışması gerekmez. • Yapısı dinamiktir ve yorumlanabilir niteliktedir. Bazı platformları desteklemesi nedeniyle bu özelliği almaktadır. • Java programlama dağıtılmış özelliktedir, tasarımı bu yöndedir. Ayrıca internetle beraber çalışmaktadır. • Java sağlam bir dildir. • Kullanılan objelerin bilgilerini taşıması nesne erişimini doğrulamak içindir. [7]
14
3.3 Google Maps API Google Maps API, Google’ın haritalar özelliğini Android uygulamalarımızda kullanma fırsatını sunar [8].
Şekil 3.3 : Google Maps API logosu. Harita üzerinde dilediğimiz yere marker koyabilmek, belirlediğimiz iki veya daha fazla nokta arasına çizgiler çizmek, belli bir bölgeyi belirtmek için çokgenler koymak gibi bir çok interaktif işlemi yapabilmemizi sağlar [8].
3.4 SQLite SQLite, dünyada en çok dağıtılan ve geliştiricilere kullanması için tavsiye edilen ve tamamen açık kaynak kodlarına sahip, C ve C++ programlama dilleriyle kodlanmış, sunucu yazılımı ve yapılandırma gereksinimi olmayan, işlemsel ve ilişkisel bir SQL veritabanı motorudur [9].
Şekil 3.4 : SQLite logosu.
3.4.1 Özellikleri • SQLite’ın çalışması için herhangi bir sunucuya ihtiyacı olmadığı için, kurulum ve ya konfigürasyon adımları yoktur.
15
• Her veritabanı için sadece bir dosya vardır. Bu da veritabanının yedeklenmesini ve kopyalanmasını kolaylaştırır. • Platform bağımsızdır. • SQLite kompakttır. Tüm kütüphanenin boyutu 225kb’dır. Bazı özellikler çıkartılarak, bu boyut 170kb’a kadar indirilebilir. Bu sayede embedded ve ya symbian gibi platformlar için uygundur [10].
16
4. AKIŞ DİYAGRAMI
Şekil 4.1 : Akış diyagramı.
17
18
5. VERİ TABANI
Öncelikle "hatirla" isimli bir veri tabanı oluşturdum ve içine de "tablom" isimli bir tablo koydum. Tablomun içindeki verilerin isimleri ise aşağıdaki tabloda görüldüğü gibidir. Tablo 5.1 : Veri tabanı tablosu. id bilgi sesKaydiYolu saat tarih adres adresText bildirimId "id", saklanan hatırlatıcı bilgilerinin ayırt edilmesini sağlayan bir veridir. Özneldir ve otomatik olarak veri tabanı tarafından sağlanan integer tipinde bir değerdir. "bilgi", kullanıcının uygulama içinde girdiği not bilgisini tutar. Text tipinde bir değerdir. "sesKaydiYolu", kullanıcın kaydettiği ses kaydının nereye kaydedildiğini tutar. Text tpinde bir değerdir. "saat", kullanıcın girdiği saat bilgisini tutar. Text tipinde bir değerdir. "tarih", kullanıcın girdiği tarih bilgisini tutar. Text tipinde bir değerdir. "adres", kullanıcın girdiği konumun koordinatlarını tutar. Text tipinde bir değerdir. "adresText", kullanıcının konum seçerken konum arama kutusuna yazdığı bilgiyi tutar. Text tipinde bir değerdir. "bildirimId", hatırlatıcı oluşturulurken seçilen bir değerdir. Eğer veri tabanında hiçbir değer yoksa bu değer "0" verilir. Eğer veri tabanında oluşturulmuş hatırlatı ya da hatırlatıcılar varsa tüm hatırlatıcıların "bildirimId" bilgilerine bakılır ve en büyük olan "bildirimId" değerinin bir fazlası verilir. "id" bilgisi gibi öznel olması amaçlanmıştır ve integer tipinde bir değerdir.
19
20
6. SONUÇLAR
Uygulamamın telefon menüsünde gözüken logosu aşağıdaki ekran görüntüsündeki gibidir.
Şekil 6.1 : Uygulamamın logosu. Uygulama açıldığında karşımıza aşağıdaki gibi bir ekran gelmektedir. Bu ekranda "HATIRLATICI OLUŞTUR" ve "HATIRLATICILARI GÖSTER" adında iki farklı buton yer almaktadır.
Şekil 6.2 : Uygulamanın açılışında gelen ilk ekran.
21
"HATIRLATICI OLUŞTUR" butonuna basıldıktan sonra karşımıza soldaki gibi bir ekran gelmektedir. Eğer "HATIRLATICILARI GÖSTER" butonuna basılırsa sağdaki gibi bir ekran ile karşılaşıyoruz.
Şekil 6.3 : Hatırlatıcı Oluştur butonuna basıldıktan sonra gelen ekran.
Şekil 6.4 : Hatırlatıcıları Göster butonuna basıldıktan sonra gelen ekran.
"HATIRLATICI OLUŞTUR" butonuna basıldıktan sonra gelen ekranda "SES KAYDET" butonuna basılırsa aşağıdaki 1. ekran görüntüsündeki gibi bir ekran ile karşılaşırız. Burada "KAYDI BAŞLAT" butonuna basarak ses kaydını başlatırız ve görünmez olan "KAYDI DURDUR" butonu 2. görseldeki gibi aktif hale gelir. "KAYDI DURDUR" butonuna bastıktan sonra ise 3. görseldeki gibi kaydettiğimiz sesi dinlememizi sağlayacak "OYNAT" butonu aktif olur. Burada "KAYDI BAŞLAT" diyerek eski kaydettiğimizi silip yeniden ses kaydı yapabiliriz. "OYNAT" butonuna basıldıktan sonra ise 4. görseldeki gibi bir ekran ile karşılaşırız ve "DURDUR" butonu aktif olur. Ses kaydımız oynatılırken "DURDUR" butonu sayesinde durdurabiliriz ya da bitince otamatik olarak kendisi durur. Durduktan sonra ise 5. görseldeki gibi bir ekran ile karşılaşırız. "TAMAM" butonuna bastığımızda hatırlatıcı oluştur menüsüne
22
geri döner ve kaydettiğimiz sesi kaydeder. "İPTAL" butonuna basarsak da yine menüye geri döner ama ses kaydını kaydetmez.
Şekil 6.5 : Ses kaydetme 1. ekran görüntüsü.
Şekil 6.6 : Ses kaydetme 2. ekran görüntüsü.
Şekil 6.7 : Ses kaydetme 3. ekran görüntüsü. 23
Şekil 6.8 : Ses kaydetme 4. ekran görüntüsü.
Şekil 6.9 : Ses kaydetme 5. ekran görüntüsü.
Ses kaydı yaptığımız dosyanın kayıt olacağı zamanki adını belirlemek için o anki tarihi ve saati kullandım. Programın veri tabanında birden fazla ses kaydı bulunacağı için ve ses kayıtlarının karışmaması için spesifik bir ismi olsun diye böyle bir tercihte bulundum. Ses kaydı dosyasının adı "h" harfi ile başlıyor ve daha sonra güncel yıl, ay, gün, saat ve dakikanın birbiri ardına yazılması ile otomatik olarak oluşturuluyor.
"SAAT SEÇ" butonuna basılırsa aşağıda bulunan soldaki ekran görüntüsündeki gibi bir alan açılıyor ve kaydırmalı sütunlardan istediğimiz saati seçiyoruz. "TARİH SEÇ" butonuna basılırsa sağdaki gibi bir ekran ile karşılaşıyoruz ve saat seçerkenki mantıkla aynı şekilde kaydırmalı sütunlardan gelecekteki bir tarihin seçimini yapıyoruz. Bu iki seçimi yaptıktan sonra da "SEÇ" butonuna basarak menüye geri dönüyoruz. Eğer seçmekten vazgeçtiysek ya da seçimimizi iptal edeceksek de "İPTAL" butonuna basarak yine menüye geri dönebiliyoruz.
24
Şekil 6.10 : Saat seçimi için ekran görüntüsü.
Şekil 6.11 : Tarih seçimi için ekran görüntüsü.
"KONUM SEÇ" butonuna basıldığında aşağıdaki görsellerden soldaki gibi bir ekranla karşılaşıyoruz. Bu alanda görüldüğü gibi adres girilmesi için bir arama çubuğu, adres çubuğuna girilen adrese gitmek için "GİT" butonu, gidilen adresi seçip menüye geri dönmek için "SEÇ" butonu ve adres seçmekten vazgeçip menüye geri dönmek için "İPTAL" butonu bulunuyor. Sağda bulunan görselde de arama çubuğuna adres yazılmış ve sonrasında "GİT" butonuna basılmış. Bu ekranda artık adres seçimi yapıldığı için "SEÇ" diyerek menüye geri dönülebilir ya da "İPTAL" diyerek seçimden vazgeçip yine menüye geri dönülebilir.
25
Şekil 6.12 : Konum seçimi için ilk açılıştaki ekran görüntüsü.
Şekil 6.13 : Konum seçimi için konum girilmiş ekran görüntüsü.
Tüm tercihler yapıldıktan sonra aşağıda bulunan soldaki görseldeki gibi bir ekran karşımıza çıkıyor. Bu ekranda görüldüğü gibi tercih yapıldıktan sonra gizli olan "SİL" butonu görünür hale geliyor. Eğer tercihimizden vazgeçmek istersek "SİL" butonuna basarak o tercihi silebiliyoruz. Bu ekrandaki tercihlerimizden eminsek "OLUŞTUR" butonuna basarak hatırlatıcımızı oluşturabiliriz. "OLUŞTUR" butonuna bastıktan sonra sağdaki gibi bir ekranla karşılaşıyoruz ve hatırlatıcımızın başarıyla oluşturulduğuna dair bir bildirim görüyoruz. Bu bildirimi "TAMAM" diyerek kapattıktan sonra uygulamanın ilk açılışındaki ekranına otomatik olarak geri dönüş yapmış oluyoruz.
26
Şekil 6.14 : Hatırlatıcı oluşturmak için tüm tercihlerin yapıldığı bir ekran görüntüsü.
Şekil 6.15 : Hatırlatıcının oluşturulduğuna dair bildirimin yer aldığı ekran görüntüsü.
Aşağıda solda bulunan ekran görüntüsünde birkaç hatırlatıcı oluşturulduktan sonra "HATIRLATICILARI GÖSTER" butonuna basıldığını ve oluşturulmuş hatırlatıcıların listelendiğini görüyoruz. Bu ekranda herhangi bir hatırlatıcı seçilmediği için gizli olan "DÜZENLE", "OYNAT" ve "SİL" butonları gözükmemektedir. Sağdaki görselde ise ses kaydı var olan bir hatırlatıcı seçildikten sonraki ekran görüntüsünü görüyoruz. Bu ekranda gizli olan 3 buton da aktif hale gelmiş.
27
Şekil 6.16 : Birkaç hatırlatıcı oluşurduktan sonra hatırlatıcıları göster butonuna basılmış ekran görüntüsü.
Şekil 6.17 : Hatırlatıcıları göster ekranında ses kaydı var olan hatırlatıcı seçilmişkenki ekran görüntüsü.
Aşağıda solda bulunan ekran görüntüsünde ise ses kaydı olmayan bir hatırlatıcının seçildikten sonra aktif hale gelen butonları görüyoruz. Ses kaydı olmadığı için "OYNAT" butonu gizli kalmaya devam etmiştir. Sağda bulunan görselde ise soldaki ekran görüntüsünde seçilmiş olan hatırlatıcı için "DÜZENLE" butonuna basıldıktan sonraki ekran görüntüsünü görüyoruz. Bu ekranda düzenlemek istediğimiz tercihlerimizi değiştirdikten sonra "DÜZENLE" butonuna basmamız gerekiyor.
28
Şekil 6.18 : Hatırlatıcıları göster ekranında ses kaydı olmayan bir hatırlatıcı seçildikten sonraki ekran görüntüsü.
Şekil 6.19 : Hatırlatıcılar arasında 2. hatırlatıcı için düzenle butonuna basıldıktan sonraki ekran görüntüsü.
Aşağıda soldaki ekran görüntümüzde, üst sağda bulunan görseldeki düzenleme ekranında gerekli düzenlemeler yapıldıktan sonra "DÜZENLE" butonuna basıldığını ve 2. hatırlatıcımızın artık değiştiğini görüyoruz. Aşağıda sağdaki ekran görüntümüzde ise "deneme3" not bilgisi yazan hatırlatımız için "SİL" butonuna basıldıktan sonra oluşan hatırlatıcı listemizi görüyoruz.
29
Şekil 6.20 : Hatırlatıcıları göster ekranında 2. hatırlatıcı düzenlendikten sonraki ekran görüntüsü.
Şekil 6.21 : Hatırlatıcıları göster ekranında deneme3 not bilgisi olan hatırlatıcı silindikten sonraki ekran görüntüsü.
Eğer ses kaydı olan bir hatırlatıcıyı seçersek ve "OYNAT" butonuna basarsak, "OYNAT" butonu gizlenecektir ve "DURDUR" butonu görünür olacaktır. Ses kaydını durdurmak için "DURDUR" butonuna basılmalı ya da ses kaydı süresinin kendiliğinden sonlanmasını beklememiz gerekmektedir. Ses kaydı durduğunda "DURDUR" butonu yeniden görünmez olup "OYNAT" butonu yeniden görünür olacaktır. Hatırlatıcıları göster ekranındaki işlemlerimiz tamamlandıktan sonra "GERİ DÖN" butonuna basarak uygulamamızın açılışındaki ekrana geri dönebilir ve yeniden hatırlatıcı oluşturabilir ya da hatırlatıcıları listeletebiliriz. 30
Aşağıda solda bulunan ekrandaki gibi tercihleri yapılmış bir örnek hatırlatıcı oluşturdum. Bu hatırlatıcı oluşturulduktan sonra ise aşağı sağdaki ekranda görüldüğü gibi hatırlatıcımız "HATIRLATICILARI GÖSTER" ekranında gözüküyor.
Şekil 6.22 : Bildirim örneği için oluşturulan hatırlatıcı için yapılan tercihlerin ekran görüntüsü.
Şekil 6.23 : Oluşturulan hatırlatıcının hatırlatıcıları göster ekranındaki görüntüsü.
Üstte oluşturduğumuz hatırlatıcımızın zamanı geldiğinde sol attaki ekranda bulunan bildirim kullanıcıya gösteriliyor. Çıkan bildirime bastığımızda ise sağ alttaki gibi bir ekran kullanıcının karşısına geliyor ve bu ekranda hatırlatıcı bilgileri kullanıcıya gösteriliyor. Eğer herhangi bir ses kaydı kaydedilmiş olsaydı, "Ses Kaydı: YOK" yazısı yerine "OYNAT" butonu gösterilecekti ve ses kaydı o buton sayesinde dinlenebilecekti. "OYNAT" butonuna basıldıktan sonra ses kaydı çalmaya başladığında ise "DURDUR" 31
butonu aktif olup "OYNAT" butonu gizleniyor ve aynı şekilde "DURDUR" butonu sayesinde ses kaydı oynatılması durdurulabiliyor.
Şekil 6.24 : Oluşturulan hatırlatıcının zamanı geldiğinde kullanıcıya bildirim olarak gösterilmesi.
Şekil 6.25 : Kullanıcıya hatırlatılan olayın bildirimine basıldığında açılan ekranın görüntüsü.
32
7. PROJE DAHA NE KADAR İLERLETİLEBİLİR?
7.1 Yaptıklarım Uygulamamın sonlanmış halinde kullanıcıdan 20 karakter sınırı olan not bilgisi, ses kaydı, tarih, saat ve konum bilgisi alıyorum ve hatırlatıcıyı bu bilgiler doğrultusunda oluşturuyorum. Oluşturulan hatırlatıcıları kullanıcıya gösterebiliyorum ve hatırlatıcıyı düzenleme, silme ve varsa ses kaydını dinletebiliyorum. Son olarak da oluşturulan hatırlatıcıyı saat, tarih ve konum bilgisine bakarak kullanıcıya bildirim göndererek hatırlatabiliyorum.
7.2 Yapılabilecekler • Kullanıcı, hatırlatıcı oluştururken bu hatırlatıcının ona kaç defa hatırlatılması gerektiğine dair ya da her gün, ayda bir, yılda bir gibi seçeneklerden birini seçerek hatırlatıcının birden fazla kez ona hatırlatılması gerektiğine dair bilgiler doldurabilir. Böylelikle devamlı olarak yaptığı bir iş varsa tekrar tekrar aynı hatırlatıcıyı oluşturmasına gerek kalmamış olur. • Hatırlatıcıyı oluştururken not bilgisi verme ve ses kaydetme seçenekleri dışında fotoğraf yükleme de kullanıcıya bir opsiyon olarak sunulabilir. • Uygulamaya üyelik sistemi getirilebilir. Böylelikle o üyelikle oluşturduğu hatırlatıcılara başka bir telefondan da erişim sağlayabilir ve kullanabilir. Ayrıca bu üyelik sistemi opsiyonel olabilir. İsterse üyelik olmadan da uygulamaya erişim sağlayabilir ve oluşturduğu hatırlatıcıları sadece kullandığı telefondan kullanabilir. • Hatırlatıcıyı oluşturduktan sonra ya da hatırlatıcı ona hatırlatıldıktan sonra kullanıcının sosyal medya hesabından hatırlatıcıya özel paylaşım otomatik olarak yaptırılabilir. Tabii kullanıcının sosyal medya hesabını uygulamaya entegre edebilmesi için de birkaç işlem yapılması gerekli olacaktır. 33
• Kullanıcının uygulama renklerini düzenleyebilmesi için ayrı bir ayarlar bölümü yapılabilir. Böylelikle kullanıcı istediği renk kombinasyonuna göre uygulamanın renklerini değiştirebilir. • Kaydedilen ses kaydının süresi de kullanıcıya sunulabilir. Ses kaydı oynatılırken ya da kaydedilirken bir zaman çubuğu ile kaçıncı saniyede olduğu anbean kullanıcıya gösterilebilir ve toplam süre de bilgiler arasında görünür olabilir.
34
Kaynakça [1] “Google keep.” [Online]. Available: https://blog.isimtescil.net/google-keep-nedir/ [2] “Evernote.” [Online]. Available: https://tr.wikipedia.org/wiki/Evernote [3] “Remember the milk.” [Online]. Available: https://www.elmadergisi.com/ sutu-unutma/ [4] “Any.do.” [Online]. Available: https://shiftdelete.net/anydo-incelemesi-66208 [5] “Android studio.” [Online]. Available: https://developer.android.com/distribute/ best-practices/develop/build-with-android-studio?hl=tr [6] “Java.” [Online]. Available: https://tr.wikipedia.org/wiki/Java_(programlama_dili) [7] “Java
avantajlar.” [Online]. Available: https://www.natro.com/blog/ java-programlama-nedir-avantajlari-nelerdir/
[8] “Google maps api.” [Online]. Available: https://medium.com/@HasibeZafer/ android-google-maps-api-c9b69352367f [9] “Sqlite.” [Online]. Available: https://www.turkcebilgi.com/sqlite [10] “Sqlite
Özellikler.” [Online]. Available: sqlite-nedir-ve-nasil-kullanilir/
35
https://www.karamelek.org/
36