PROGRAMLAMADA YENİ EĞİLİMLER Dersi Mobil Programlama soru cevapları:

Toplam 30 Soru & Cevap
PAYLAŞ:

#1

SORU:

İşletim sistemi nedir? Açıklayınız.


CEVAP:

İşletim Sistemi, bilgisayar, oyun konsolu, cep telefonu, araba, beyaz eşya vb. cihazlarda çalışan, donanım kaynaklarını yöneten ve çeşitli uygulama yazılımları için yaygın servisleri sağlayan bir yazılımlar bütünüdür. Popüler olan mobil işletim sistemlerine örnek olarak Android, iOS, Windows Mobile, BlackBerry OS, Symbian vb. gösterilebilir.


#2

SORU:

Mobil uygulama nedir? 


CEVAP:

Mobil cihazlar için tasarlanmış ve kodlanmış yazılımlara mobil uygulama denir. Bir mobil uygulama mobil web sitesinden farklıdır. İstendiği takdirde kullanıcılara mobil uygulama sayesinde ulaşılabilmekte, kampanya, duyuru vb. durumlardan haberdar olunabilmesi sağlanabilmektedir. Bu anlamda bir mobil uygulama dijital bir pazarlama aracı olarak da kullanılmaktadır. Aynı zamanda marka kimliği olarak tamamlayıcı bir faktör olup güçlü bir imaj yaratmada etkili olabilmektedir.


#3

SORU:

Responsive web tasarımı açıklayınız.


CEVAP:

Web sayfasının kademeli olarak ekran boyutlarına küçültülüp büyü- tülebildiği tasarımlar gündeme gelmiştir. Bu tasarımlara responsive tasarım ismi verilmektedir. Responsive web tasarım, duyarlı, uyumlu web tasarım anlamına gelmektedir. Eğer ulaşılmaya çalışılan web sayfası, responsive ya da mobil uyumlu olarak tasarlanmadıysa, okumak istenilen alan yakınlaştırılarak (zoom in), kısıtlı bir alan görüntülenebilmekte ve kullanım zorluğu çekilebilmektedir. Aynı zamanda site içerisindeki menüleri gezerken zorlanılmakta, hatta gidilmek istenen bağlantı adresi bulunamamaktadır.


#4

SORU:

Bir sayfanın arama motorunda hem kendi alan adı hem de m.alanadı.com şeklinde farklı alt alanadı altında bir mobil sürümünün olmasından ziyade tek web adresi ile sayfanın responsive yapılması neden daha uygun olmaktadır?


CEVAP:

Arama motorları responsive tasarıma sahip olan siteleri ciddi şekilde desteklemektedir. Bir sayfanın arama motorunda hem kendi alan adı hem de m.alanadı.com şeklinde farklı alt alanadı altında bir mobil sürümünün olmasından ziyade tek web adresi ile sayfanın responsive yapılması daha uygun olmaktadır. Çünkü mobil cihazlardan yapılan aramalarda genellikle arama motorları, sayfaların mobil uyumluluğuna dikkat etmeden sonuçları sıralamaktadır.


#5

SORU:

Mobil uyuglama geliştirmenin gereklilikleri nelerdir?


CEVAP:

Mobil internet sitelerinden farklı olarak, mobil uygulama geliştirmek, özel bir uzmanlık gerektirmektedir. Mobil uygulamanın çalışacağı platforma göre tasarım ve kodlama yapılmakta ve bu aşamada kullanılan yazılımın dili de değişkenlik göstermektedir. Bu durum yalnızca tek bir yazılım diliyle değil, hazırlanacak olan platformun sayısına göre de değişkenlik göstermektedir. Günümüzde kullanıcılar, aynı işletim sistemli birden fazla cihaz kullanmaktadırlar. Yazılım geliştiriciler için önemli olan, kullanılan mobil işletim sistemleridir. 


#6

SORU:

Yazılım çerçevesi (software framework) nedir?


CEVAP:

Uygulamanın platformundan kasıt, yazılımı çalıştırmak için donanım mimarisi ve bir yazılım çerçevesi, yazılım, çeşitli kombinasyon veya sıralamaları içeren yapıdır. Burada bahsedilen yazılım çerçevesi (software framework), standart fonksiyonların hazır olarak sunulduğu ancak programcı tarafından bu fonksiyonlardan arzu edilen kısımların ek kodlarla istenildiği şekilde güncellenebildiği sistemlerdir


#7

SORU:

Düşük seviyeli programlama dili nedir?


CEVAP:

Düşük Seviyeli Programlama Dili, komut kümesinde hiç soyutlama imkânı vermeyen ya da kısıtlı miktarda soyutlama sağlayan programlama dili anlamına gelmektedir. Burada kullanılan “düşük” kelimesi, programlama diliyle makine dili arasında bulunmayan ya da az bulunan bir soyutlama imkânını temsil etmektedir. Bu anlamda düşük seviyeli programlama dilleri “donanıma yakın” olarak da bilinmektedir


#8

SORU:

API (Uygulama Programlama Arayüzü) nedir?


CEVAP:

API (Uygulama Programlama Arayüzü), bir yazılımın başka bir yazılımda tanımlanmış fonksiyonlarını kullanabilmesi için oluşturulmuş bir tanım bütünüdür. Örneğin, YouTube API’si kullanarak uygulama içerisinde YouTube videoları yayımlanabilmekte, Turkcell API’si kullanarak mobil uygulama içerisinde Turkcell’in sunduğu SMS gönderme, kimlik doğrulama, konum sorgulama, mobil ödeme vb. hizmetlerini kullanan bir uygulama yazılabilmektedir.


#9

SORU:

Başlıca mobil işletim sistemleri, cihazlar ve uygulama mağazaları hangileridir?


CEVAP:
  • Android işletim sistemi - Samsung, HTC, Sony, LG, Asus (hemen hemen tüm telefonlar), tabletler, saatler, giyilebilir cihazlar - Google Play Store
  • Apple iOS işletim sistemi - iPhone, iPad, iWatch vb. Apple cihazları - Apple App Store
  • Windows Mobile işletim sistemi - Nokia Lumia, Windows Phone, Huawei - Windows Phone Store
  • Blackberry işletim sistemi - Blackberry cihazlar - Blackberry App World

#10

SORU:

Nesnelerin interneti (Internet of Things) nedir? Açıklayınız.


CEVAP:

Internet of Things - IoT temel haliyle, nesnelerin internet üzerinde veri alışverişi yapabilmesi ve bu sayede internete bağlı olan diğer tüm cihazlarla iletişim kurarak nesneler ekosistemi içerisinde yaşayabilmesi olarak tanımlanabilir.

Bir cihaz İnternete bağlandığında, dünyadaki İnternete bağlı tüm cihazlarla aynı ağa bağlanmış ve bu ağdaki tüm cihazlarla iletişim kurabilir hâle gelmiş demektir. Yani buzdolabınızdaki yumurta rafında kaç yumurta olduğunu sensörleri ile ölçen İnternete bağlı bir cihaz, bu veriyi bulut sunucuya dakikada bir gönderebilir ve sizin cep telefonunuzdaki mobil uygulama; yumurta sayısı 2’nin altına düştüğünde size bildirim yapabilir. Bu durumda cep telefonunuz ve buzdolabınız bir IoT, yani nesnelerin İnterneti ekosistemi, buzdolabınız ise bir IoT cihazına dönüşmüş olmaktadır.


#11

SORU:

Çoklu platform (cross platform) nedir?


CEVAP:

Çoklu Platform (Cross Platform) yazılımları, birden fazla işletim sisteminde dağıtımı olan yazılımlardır. bir mobil uygulama yazmak için elimizde artık sadece tek bir araç ve platform bulunmamaktadır. En bilinen platformları; Web, Android, iOS, Windows Phone olarak sıralamak mümkündür. 


#12

SORU:

Mobil uygulama geliştiricilerinin dikkat etmesi gereken hususlar nelerdir?


CEVAP:

Mobil uygulama geliştirirken geliştiricinin, uygulamadan beklentiler, kullanıcıların uygulamayla neleri yapabileceği ve hangi deneyimleri, nasıl yaşayacakları, teknik açıdan kullanılan servisler gibi daha birçok soruya yanıt verebiliyor olması gerekmektedir. Bunların yanında biraz daha detaya inilecek olursa, uygulamanın hızı, uygulamanın cihazın tüm özelliklerine ulaşması gerekli mi, uygulama hangi seviyede cihaz bilgisine gerek duyacak gibi sorular da teknik anlamda yanıtlanması gereken sorular arasında olacaktır


#13

SORU:

Mobil uygulamaların türleri nelerdir?


CEVAP:

Mobil uygulamaların kendi içerisinde türleri de ortaya çıkmış olmaktadır, kısaca bu türleri aşağıdaki gibi sıralamak mümkündür:

• Yerel (Native) Uygulamalar

• Web Tabanlı Uygulamalar

• Melez (Hybrid) Uygulamalar


#14

SORU:

Yerel (Native) Uygulamaları açıklayınız. 


CEVAP:

Uygulamanın kısaca cihaza özgü yerel dille yazılarak hazırlanması anlamına gelmektedir. Biraz daha açacak olursak, belli bir platforma özel, genellikle platform sağlayıcının belirtmiş veya üretmiş olduğu “Yazılım Geliştirme Kiti (SDK)” araçları ve programlama dili yardımıyla geliştirilmiş uygulamalardır. Android için Java dili Android Studio geliştirme ortamı, iOS için Objective-C ile Swift dilleri ve XCode geliştirme ortamı, Windows Phone için C# dili ve Visual Studio geliştirme ortamı kullanılmaktadır.

Yerel uygulamalar pratikte ikiye ayrılmaktadır.

• Platform Tabanlı Yerel Uygulamalar

• Çoklu Platform Yerel Uygulamalar


#15

SORU:

Yazılım Geliştirme Kiti (Software Development Kit SDK) nedir?


CEVAP:

Yazılım Geliştirme Kiti (Software Development Kit SDK) Belli bir yazılım paketi, yazılım çatısı, donanım platformu, bilgisayar sistemi, oyun konsolu, işletim sistemi veya bunlara benzer bir platform için uygulama üretmeyi sağlayan yazılım geliştirme araçlarından oluşan yazılımdır.


#16

SORU:

Plug-in nedir?


CEVAP:

Plug-in, kendi başına çalışabilen bir yapı için, genellikle çok özel bir alanda duyulan gereklilik üzerine geliştirilen, yapıya yeni özellikler ekleyen yazılımdır.


#17

SORU:

Yerel uygulamaların avantajları nelerdir?


CEVAP:

Yerel uygulamaların avantajları şu şekilde sıralanabilir:

• En iyi kullanıcı deneyimi sunarlar, hızlı ve akıcıdırlar.

• Cihaz özelliklerine en yüksek erişimi sağlarlar.

• Uygulamalar çevrimdışı olarak çalışabilmektedir.

• Yüksek performansa sahiptirler, performansı arttırmak için donanım kaynaklarını kullanırlar.

• Uygulamalar, kullanıcılara daha iyi bir görünürlük sağlayan uygulama mağazaları aracılığı ile dağıtılmaktadır.


#18

SORU:

Yerel uygulamaların dezavantajları nelerdir?


CEVAP:

Dezavantajları ise şu şekilde sıralanabilir:

• Daha fazla bütçeye ihtiyaç duyarlar.

• Geliştirme süreçleri daha uzundur.

• Uygulama güncellemeleri kullanıcı tarafından yüklendiği takdirde aktif olmaktadır.


#19

SORU:

Web tabanlı uygulamaları açıklayınız.


CEVAP:

Web tabanlı uygulamalarda, uygulama mağazalarından sadece ikon indirilmekte ve bu ikonlara tıklanarak açılan uygulamanın içerisinde bir web sitesi çalışmaktadır. Kullanıcılar uygulamanın içerisinde web sitesi çalıştığını genellikle fark etmemektedirler. Web uygulamalarında ise HTML5, JavaScript ve CSS3 gibi farklı diller kullanılmaktadır.


#20

SORU:

Melez uygulama tekniği nedir? Açıklayınız.


CEVAP:

Melez uygulama tekniği, temel olarak tek bir kod çıktısı ile birden fazla platformda uygulama çalıştırılabilmek amacıyla geliştirilmiştir. Uygulamanın melez olması, açıklanabilir web uygulamaları ile yerel uygulamaların karışımı olarak açıklanabilir. Melez uygulamalar HTML5, JavaScript, CSS3 gibi standart web teknolojilerini kullandıkları gibi, bazı firmaların geliştirdiği araçları kullanarak, o araçların belirlediği kurallara/yöntemlere göre ve sağladığı plug-in destekleriyle bir takım cihaz donanımlarına erişim olanağının sağlandığı uygulamalardır.


#21

SORU:

Melez uygulamaların avantajları nelerdir?


CEVAP:

Melez uygulamaların avantajları şu şekilde sıralanabilir:

• Tecrübeli bir web uygulama geliştirici hızlı bir şekilde melez uygulama geliştirebilir.

• Düşük geliştirme maliyeti vardır.

• Tüm platformlar için tek bir programlama dili kullanılabilir.

• Uygulamalar çevrimdışı olarak çalışabilir.

• Bazı cihaz yeteneklerine erişilebilir


#22

SORU:

Melez uygulamaların dezavantajları nelerdir?


CEVAP:

Dezavantajları olarak da şunlar sıralanabilir:

• Platformu anlamak ve öğrenmek uzun zaman alabilir.

• Günümüz cihazları melez uygulamaları akıcı ve sorunsuz şekilde çalıştıramamaktadır, bu uygulamalar daha fazla güce ihtiyaç duyarlar.

• Her platformdaki tarayıcılar son HTML özelliklerine sahip değillerdir, bu da beraberinde bazı sorunları getirebilir.

• Uygulamaların mağazalarda yasaklanma riski daha yüksektir.

• Güvenlik ciddi olarak bir sorundur, melez uygulamalar saldırılara daha açık durumdadırlar


#23

SORU:

Mobil uygulama fikri için doğru aracı ve tekniği belirlerken dikkat edilmesi gereken hususlar nelerdir?


CEVAP:

Bir mobil uygulama fikri için doğru aracı ve tekniği şu kriterlerle belirlemek mümkündür:

• Kararlılık,

• Performans,

• Görünüm ve etkileşim,

• Anlaşılabilirlik ve kullanılabilirlik,

• İleriye yönelik geliştirme ve bakım süreçleri,

• Kullanılacak platform ve araçların eklenti desteği.


#24

SORU:

Android nedir? Açıklayınız.


CEVAP:

Klasik tanım olarak Android, Google ve Open Handset Alliance tarafından kodlanmış Linux İşletim Sistemi tabanlı, mobil cihazlar için geliştirilmiş açık kaynak kodlu bir işletim sistemidir. Android, aygıtların fonksiyonelliğini genişleten uygulamalar yazan geniş bir geliştirici grubuna sahiptir. Aslında Android denildiğinde akıllara mobil uygulama geliştirme için açık bir platform gelmektedir.


#25

SORU:

Androidin temel kısımları nelerdir?


CEVAP:

Basit olarak Android şu kısımlardan oluşur:

• Mobil cihazlar için ücretsiz, açık kaynak kodlu bir işletim sistemi.

• Mobil uygulamalar oluşturmak için bir açık kaynak geliştirme platformu.

• Android işletim sistemi ve bu işletim sistemi için oluşturulmuş yazılımlarla çalışan cihazlar.


#26

SORU:

iOS nedir? Açıklayınız.


CEVAP:

Apple firmasının mobil platformları için geliştirdiği mobil işletim sistemi olan iOS’da uygulama geliştirirken kullanılan en temel programlama dili Objective-C’dir. Bilinen C dilini temel alan ve sonradan Nesne Tabanlı (Object Oriented) hâle getirilen Objective-C, Apple tarafından, firmanın ürettiği tüm cihazlarda kullanılmaktadır. Kararlı sürüm olarak 2007 yılından beri kullanılan Objective-C, Haziran 2014’ten itibaren yerini, son teknolojilerden yararlanan, yeni nesil uygulamaların yazılması için yetenekleri üzerinde barındıran güçlü ve kullanımı nispeten kolay Swift diline bırakacak duruma gelmiştir. Uygulama geliştiriciler, Swift’i ilk kullanıma sunulduğu andan itibaren benimsemiş, pek çok şirket kendi uygulamalarını geliştirmek için, bazıları ise tamamen yeni uygulamalar geliştirmek için kullanmışlardır. Bu hızlı ve verimli olan dil, gerçek zamanlı geri bildirim sağlamakta ve mevcut olan Objective-C koduna sorunsuz bir şekilde entegre edilebilmektedir. Bu sayede geliştiriciler sadece daha güvenli kod yazmakla kalmamakta, zamandan tasarruf edebilmekte ve daha zengin uygulama deneyimleri oluşturabilmektedir. Android’ de olduğu gibi beş katmandan oluşan iOS sistem mimarisi katmanlarını, Çekirdek İşletim Sistemi (Core OS), Çekirdek Servisler (Core Services), Medya, Cocoa Touch ve Uygulamalar katmanları olarak sıralamak mümkündür. Temelinde Unix’e benzeyen değiştirilmiş çekirdek kullanılan iOS’un kaynak kodu açık kaynak değildir.


#27

SORU:

Windows işletim sistemini açıklayınız.


CEVAP:

Mobil cihazlarla ilgili olarak ilk ürününü 1992 yılında geliştirmeye başlayan ve 1996 yılında piyasaya süren Microsoft, o dönemlerin ilk mobil işletim sistemi olan Windows CE’yi piyasaya sürmüştür. Bu işletim sistemi, mimari olarak Windows 95, kullanıcı arabirimi olarak da WinPad kullanmıştır. 2001 yılında akıllı telefonlara uygulanabilen ilk model olan Pocket PC 2002 piyasaya sürüldü. 2003 yılından itibaren Windows Mobile ismini taşıyan işletim sistemi hâlen Windows CE 4.2 sürümleriyle birlikte CE altyapısını kullanmaktaydı. 2007 yılına kadar Windows CE tabanlı işletim sistemi geliştiren Microsoft, 2010’dan itibaren tasarımsal değişikliklere giderek Metro UI ismini verdiği arayüzü kullanan Windows Phone 7 ile piyasaya çıktı. Windows Phone 7 ile birlikte, uygulama geliştiricilerin Silverlight, oyun geliştiricilerin ise XNA platformlarını kullanması gerekiyordu. Microsoft’un son mobil işletim sistemi olan Windows Phone 8’de HTML5 ve yerel dil desteği sunulmuştur. Bu destekle, C++ programlama diliyle geliştirilen bir uygulama, Java ve C# dillerinde olduğu gibi herhangi bir ara dile dönüştürülmeden çalışmaktadır. Windows Phone 8’de C++ kullanarak uygulama yazılabilmektedir. Ancak, Windows Phone 7’de bu şekilde uygulama geliştirme yöntemleri kullanılamamaktadır. Öte yandan, Windows Phone 7’de geliştirilen her uygulama Windows Phone 8’de çalışabilecektir. Yakın zamanda Windows 10 ile gündeme gelen Microsoft, tek platform çerçevesinde evrensel uygulama stratejisini benimseyerek, Windows 10 Mobile işletim sistemiyle hem masaüstü hem de mobil cihazlarla birlikte telefonları da ortak kullanıma dâhil etmek istemektedir. Bu yaklaşımla bundan sonra telefondan masaüstü bilgisayara, tabletten oyun konsollarına ve nesnelerin interneti cihazları gibi farklı platformlarda kendisini adapte ederek çalıştırabileceği bir işletim sistemi mantığına doğru gitmektedir. Buna Windows 10’la birlikte gelen “Evrensel Windows Platformları (Universal Windows Platform-UWP)” uygulamaları yaklaşımı ismi verilmektedir. UWP uygulamaları geliştirebilmek için öncelikle sisteminizde Microsoft’un yılları- nı verdiği ve uygulama geliştirme ortamları içerisinde en başarılısı sayılabilecek Visual Studio’nun son sürümü olan Visual Studio 2015 kullanılması gerekmektedir. Bunun yanında Windows 10 yazılım geliştirme kiti olan Windows 10 SDK kurulması gereklidir.


#28

SORU:

.Net nedir?


CEVAP:

.Net Microsoft’un, programlama dilinden ve çalıştırılacak sistemden bağımsız olarak uygulama geliştirmeyi amaçlayan platformudur.


#29

SORU:

apk dosyası nedir?


CEVAP:

apk Dosyası İngilizce açılımıyla Android Application Package olan ve Android platformunda kullanılan ön tanımlı paket dosya formatıdır. Android uygulamasının çalıştırılabilir dosya formatı olarak kullanılmaktadır.


#30

SORU:

Dalvik Sanal Makinesi nedir?


CEVAP:

Dalvik Sanal Makinesi Android işletim sisteminde uygulamaların yüklenmesi esnasında önbellekleme yapılmasına olanak sağlayan bir sanal makine kurgusudur. Bu sayede uygulamalar farklı işlemci ve bellek kullanan cihazlarda sorunsuz çalışabilmektedir.