1. 1
Hacettepe Üniversitesi Bilgisayar Mühendisliği 2014 - 2015 Dönemi Yaz Stajı
Raporu
Ad: Ayşe Meliz
Soyad: Ersoy
Sınıf: 4
Numara: 21228319
Staj Konusu: Yazılım
Başlama Tarihi: 20/08/2015
Bitiş Tarihi: 02/10/2015
Süresi: 6 Hafta/30 iş günü
Staj Yapılan Yerin Adı: NFOTEKS Technology Ltd. Şti.
Staj Yapılan Yerin Adresi: Melih Gökçek Bulvarı 1368. Cadde No:113/2 İnfoteks
Alfa Plaza İVOGSAN Yenimahalle - ANKARA
3. 3
1.GİRİŞ
2014-2015 yaz stajı döneminde INFOTEKS Technology’de yaptığım stajın
konusu mobil uygulamalar ileilgiliydi. Bu amaçla, “Çocuklar İçin Mobil Uygulamar”
temasından yola çıkarak Çocuklar İçin Temel Eğitim adını verdiğim bir Android
uygulaması geliştirdim.
Projeyı geliştirebilmek için öncelikle App Store ve Android Google Play
Store’da bulunan ve kullanıcılar tarafından olumlu tepkiler almış en popüler 5
uygulamayı incelim. Bu incelemeden yola çıkarak, kendi uygulamamda
bulunmasını istediğim özellikleri belirledim. Yazılım gereksinimlerini ve kavramsal
tasarımını oluşturdum. Android Studio kullanımını öğrenerek, uygulamamı
geliştirdim.
Staj sürecimin sonunda, uygulamamı tamamladım ve kullanıma hazır hale
getirdim.
2. INFOTEKS TECHNOLOGY
İNFOTEKS Bilgisayar, Elektronik, Telekomünikasyon, Medya ve Reklam Ltd.
Şti. 90' lı yılların sonunda trend yaratan ve yenilikçi elektronik ürünleri Türkiye
pazarıyla buluşturmak amacıyla kurulmuştur. İçinde bulunduğu ve o yıllarda
gelişme sürecinde olan elektronik sektörünü yeni ürünlerle tanıştırmış olan firma,
sektöre ve sektörün diğer firmalarına örnek olmuştur.
Teknolojik ürünler üreten ve bu alanda faaliyet gösteren İNFOTEKS kurduğu
iş bağlantıları ve işi gereği gelişen trendleri takip etmesi sebebiyle teknolojik
ürünler üretmenin yanı sıra bununla ilintili olarak ENERJİ, YAZILIM, BİLİŞİM,
ELEKTRONİK, AYDINLATMA, MEDYA REKLAM, ÇAĞRI MERKEZİ konularında
da faaliyet göstermektedir.
4. 4
Multimedya ve elektronik ürünlerin üretiminin büyük bir kısmını yurtdışındaki
fabrikalarında gerçekleştiren İNFOTEKS, otobüs sektöründe çığır açan Seat TV
Fusion modeli koltuk arkası televizyonların üretiminin büyük bir kısmını Türkiye'de
gerçekleştirmektedir.
3. STAJ SÜRECİ
3.1. Araştırma – Analiz Etme
3.1.1. Uygulama Konusunun Seçimi ve Piyasa Araştırması
Stajımın ilk haftasında, staj sorumlusu tarafından sunulan uygulama
konularından birini seçtim ve bu konuyla ilgili App Store ve Android Google Play
Store’da bulunan uygulamaları inceleyip raporladım.
Staj sorumlusu tarafından belirlenen konu başlıkları;
Yaşlılar için mobil uygulamalar ,
Engelliler için mobil uygulamalar ,
Çocuklar için mobil uygulamalar,
Mobil radyo uygulaması Mobil TV uygulaması,
NFC (temassız iletişim) Uygulamaları, şeklindeydi.
Çocuklar için mobil uygulamalar konusunu seçtim ve son zamanlarda en
çok kullanılan, en popüler olan ve en iyi tepkiler alan 5 uygulamayı inceledim. Bu
uygulamalar;
Çocuklar İçin İngilizce
Educational Games For Kids
Genç Matematik Kralı
Doctor Kids
Hayvan Sesleri.
5. 5
Analizimde 5 uygulamaya ait, geliştirici bilgileri, uygulamanın amacı ve
kapsamı, sunulan özellikleri, genel istatistikleri, tasarımı ve ekran görüntüleri,
indirilme sayısı, kullandığı izinler, kullanıcı yorumları ve yazılım gereksinimleri ibi
pek çok bilgiyi detaylı şekilde açıklayan bir rapor hazırladım.
3.1.2. Projemin Detaylarını Belirleme
Stajımın ikinci haftasında, incelediğim 5 uygulamadan da yola çıkarak,
geliştireceğim uygulamanın özelliklerini, genel tanımını, yazılım gereksinimlerini ve
arayüz tasarımını belirledim ve raporladım.
Bunu yaparken, incelediğim uygulamaların özellikleriyle, geliştirdiğim
uygulamada bulunmasını istediğim özellikleri karşılaştırdığım bir tablo oluşturdum
ve staj sürecince bu tablodan yararlandım.
Özellik / Uygulama
Çocuklarİçin
İngilizce
Educational
GamesForKids
GençMatematik
Kralı
DoctorKids
HayvanSesleri
i
ÇocuklarİçinTemel
Eğitim
Ses kaydı kullanma + + + + + +
Video kullanma +
+4 seçenekli test soruları bulundurma + + + +
Farklı dil seçenekleri bulundurma + + + +
Ücret ödenerek ek özellik/tam versiyon satın alma +
Müzik + + +
Farklı kullanıcı hesapları oluşturabilme +
Küçük oyunlar içerme + +
Farklı ders içerikleri bulundurma +
Reklam alma + +
Basitlik ve kullanım kolaylığı + + + + + +
6. 6
3.1.3. Android Programlamaya Giriş
Uygulama geliştirme sürecinde yardımcı olabilecek kod örnekleri ve tutorialların
araştırıp raporladım ve staj süresince çoğunlukla bu kaynaklardan yararlandım.
Kullandığım kaynakları REFERANSLAR bölümde bulabilirsiniz.
3.1.4. Kavramsal Tasarım
Kodlamaya başlamadan önce, uygulamamın kavramsal tasarımını yaptım ve
yapacağım işi bir ürün ağacı şeklinde parçalara ayırdım. Bu çalışma,
oluşturoluşturduğum class yapılarına, ata ve çocuk ilişkilerine karar vermemde
yardımcı oldu.
Hazırlamış olduğum iş parçacıkları bu şekildedir. Uygulama, iç içe geçmiş
menülerden oluşur ve bu alt menüler benzer özellikleri kullanmaktadır. Alt
menülerin içeriği tamamlandıkça, ağacın üst kısmına dpğru çıkılması sağlandı ve
uygulama kullanılabilir bir hal aldı.
7. 7
3.2. Kodlama
Çocuklar İçin Temel Eğitim adını verdiğim uygulamamı geliştirirken Android
Studio’yu kullandım. Uygulamanın tasarımını,ve özelliklerini incelemeye
başlayalım.
3.2.1. Tasarım
Çocuklar İçin Temel Eğitim adlı uygulamam, Genel Yetenek, İnilizce ve
Matematik ana başlıklarından oluşmaktadır.
Uygulamanın Cep Telefonundaki Görüntüsü ve Kullanılan İkon
8. 8
Uygulamaya Giriş Yapıldığında Açılan Ana Menü
- Genel Yetenek
- İngilizce
- Matematik)
Genel Yetenek Alt Menu
- Öğrenmeye Başla
- Görsel Test
- İşitsel Test
- Klasik
9. 9
Öğrenmeye Başla
- Alfabe
- Sayılar
- Renkler
- Şekiller
- Meyveler
- Hayvanlar
- Vücudumuz
- Araçlar
- Ülkeler
Bu içerikler cisimlerin görsellerinden, cisimlerin yazılışını ifade eden
textview’lerden ve görsellere tıklandığında aktifleşen ses kayıtlarından
oluşmaktadır.
Alfabe Sayılar
12. 12
NOT: Uygulamamın İngilizce bölümü,
Genel Yetenek’te bulunan başlıkları
içermektedir. İngilizce bölümünde kullanılan
textview’ler cisimlerin İngilizce yazılışını, ses
kayıtları ise İngilizce seslendirilişini
içermektedir. İngilizce bölümüne ait
görselleri, kalabalık bir görüntü
oluşturmaması için raporuma dahil
etmiyorum.
Ülkeler
Görsel Test başlığı altında örnekteki gibi 8
adet soru bulunmaktadır. Kullanıcı yanlış cevap
verdiğinde “kırmızı çarpı” işareti ile uyarılır. Doğru
cevabı verdiğinde ise “yeşil tik” işareti ile uyarılıp
diğer soruya otomatik olarak geçmesi sağlanır.
Görsel Test Örnek Soru
13. 13
İşitsel Test başlığı altında örnekteki
gibi 8 adet soru bulunmaktadır. Kullanıcı
“hoparlör” ikonuna tıkladığında soru
olarak bir cismin okunuşu duyulacaktır ve
kullanıcıdan bu pronounsa ait görseli
işaretlemesi beklenecektir.
Kullanıcı yanlış cevap verdiğinde
“kırmızı çarpı” işareti ile uyarılır. Doğru
cevabı verdiğinde ise “yeşil tik” işareti ile
uyarılıp diğer soruya otomatik olarak
geçmesi sağlanır.
İşitsel Test Örnek Soru
Klasik Test başlığı altında örnekteki gibi 8 adet
soru bulunmaktadır. Kullanıcıdan görselini gördü-
ğü cismin yazılışını text field’a girmesi beklenir.
Kullanıcı yanlış cevap girdiğinde ekranda “Ceva-
Bınız yanlış. Lütfen tekrar deneyin.” İfadesini
İçeren bir Toast mesajı belirir. Kullanıcı doğru
Cevap girdiğindeyse otomatik olarak diğer soruya
Geçilir.
.
Klasik Test Örnek Soru
14. 14
Yeşil Tik Örneği Kırmızı Çarpı Örneği Toast Mesajı
Matematik Alt Menü Başlıkları
- Sayma
- Toplama
- Çıkarma
- Çarpma
- Bölme
- Kesirler
- Geometri
- Karşılaştırma
- Ölçme
- Karışık
Matematik Alt Menü
15. 15
Matematik Alt Menü’de her konu başlığı için ayrıca hazırlanmış 8’er soru
bulunmaktadır. Kullanıcı bu sorulara yanlış cevap verdiğinde, Genel Yetenek ve
İngilizce bölümlerinde olduğu gibi “kırmızı çarpı” işaretiyle uyarılır. Doğru cevap
verdiğindeyse “yeşil tik” işaretiyle karşılaşır ve otomatik olarak diğer soruya
geçebilir.
Her konu başlığına ait örnek 1 adet soru, aşağıdaki görsellerde mevcuttur.
Sayma Toplama
Çıkarma Çarpma
17. 17
Ölçme Karışık
Kullanıcı her bir soru kümesini
başarıyla tamamladığında bu sayfayla
karşılaşır ve Ana Menü’ye dönmesi sağlanır.
Tebrikler Sayfası
18. 18
3.2.2. Özellikler
Uygulamada ihtiyaç duyduğum özellikleri araştırdıktan sonra projeme dahil
ettim.
Bu özellikleri incleyecek olursak;
1. Layout
Android uygulamalarımızda ekleyeceğimiz kontrollerin belirli bir düzende
olması için layout kullandım. Örneğin buton ve textviewkontrollerinin alt alta
olmasını, sağa sola kaymadan belirli bir düzende olmasını istiyorsak buna uygun
olan layoutları kullanmamız gerekir.
Temel layout türleri;
- Linear Layout: Bu layout türünde, eklenecek olan
nesneler doğrusal olarak eklenir. Kontrollerin alt alta olmasını
istediğimde vertical linear layout, yanyana olmasını istediğimdeyse
horizantal linear layput kullandım.
- FrameLayout: Bu layout tipinde nesneler üst üste biner. Genelde aynı
boyutlardaki butonların üst üste gelip, birinin kaybolduğunda diğerinin
gözükmesi için kullanılır.
- RelativeLayout: Bu layout tipini kullanırsak araçlarımızı istediğimiz
yere sürükleyebiliriz. Varsayılan olarak android uygulamalarında bu
layout gelir. Araçlarımızı, sayfamız üzerinde sürüklediğimiz
zaman cetvel şeklinde koordinatlar görürüz. Bir hiza olmadan
istediğimiz gibi araçları yerleştirebiliriz.
-
- TableLayout:Bu layout türünde ise araçlarımız bir tablo şeklinde
tutulur. Diğerlerinden farklı olarak bu layout’u kullandığımızda
tablomuza TableRow adında satır eklememiz gerekir.
19. 19
2. Scroll View
Uygulamamızdaki herhangi bir arayüzdeki kontroller ekrandan taşmaya
başladığında Scrool View kullandım. Bu şekilde daha fazla veriyi ekranın altında
tuttum ve kullanıcının kaydırma hareketiyle bu veriye ulaşmasını sağladım.
3. Image Button
Arka planını bir görselin oluşturduğu ve tıklandığında yanıp sönme efektini
defalt olarak gerçekleştiren butonlardır. Uygulamanın özellikle “Öğrenmeye Başla”
bölümünde sıkça kullandığım bir araçtır.
4. Button ve Selector
Android Studio default butonları, görsel açıdan yetersiz kalmakta ve cazip bir
arayüz oluşturmaya engel olmaktadır. Buton tasarımlarımızı kendimiz
oluşturmamız, bu nedenle daha güzel bir sonuç verecektir.
Buton tasarımında, Android Studio’nun sunduğu Shape XML’den yararlandım.
Butonun farklı renkler içermesini, köşelerinden belirli boyutlarda basınç oluşturarak
daha oval bir görünüm almasını sağladım.
Uygulamanın “menü” sayfalarında kullandığım bulut şeklindeki butonları ise
Android Studio’nun sunduğu Selector XML sayesinde oluşturdum. İki bulut
görselinden koyu olanı butonun ilk andaki duruşunda, açık olanı ise butona
basıldığında aktifleştirildi. Böylece image button’da default olarak bulunan efekt
elde edildi. Bu aşamada image button kullanmamanın nedeniyse bu aracın her
görseli kare bir zemine sabitlemesi ve efekti bu kare zeminin tümüne
gerçekleştirmesiydi.
5. Image View
Uygulamaya görsel eklemek için kullandığım araçtır.
20. 20
6. Audio
Uygulamaya eklediğim sesler için *.wav formatını kullandım. Her buton için
ayrı ayrı kaydettiğim sesleri, SoundPool nesnelerinden oluşan bir dizide tuttum ve
buton tıklandığında çağırılan fonksiyonda gerekli sesi aktifleştirdim.
7. Textview
Uygulamaya yazı eklemek için bu aracı kullandım.
8. Edit Text Field
Kullanıcının kendini test etmesi amacıyla hazırlanan klasik sorulara yanıt
vermesini sağlamak için bu aracı kullandım. Bu sayede kullanıcının cevabını bir text
alanına girebilmesi ve bu cevabın if-else yapısı tarafından kontrol edilmesi sağlandı.
4. SONUÇ
30 iş günü süren staj sürecimde, Android İşletim Sistemi’ne sahip cihazlarda
kullanılmak üzere, Çocuklar İçin Temel Eğitim adını verdiğim uygulamamı
geliştirdim. Bu amaçla, Android Studio öğrendim ve kendimi bu konuda geliştirdim.
Proje sırasında ve sonunda doldurulması gereken yazılım dökümanları ile bir
projenin yapımı sırasında uygulanması gereken adımları öğrendim ve bu konuda
tecrübe sahibi oldum.