2 Nisan 2020

2.Bölüm Ders-1: PLATFORM VE PROGRAMLAMA DİLİ SEÇİMİ

  1. PLATFORM VE PROGRAMLAMA DİLİ SEÇİMİ

Android Programlama

Android için geliştirme süreci:

    • Java dosyalarında, programın mantığını – uygulamanın ne yapmasını istediğinizi açıklarsınız.
    • XML dosyalarında mizanpajları – görünümü tasarlarsınız.
    • Uygulama yazıldıktan sonra, tüm dosyaları derlemek ve bunları Android cihazlarda çalıştırabileceğiniz ve / veya Google Play’de yayınlayabileceğiniz bir .apk dosyasında bir araya getirmek için derleme aracını kullanmanız gerekir.
    • Entegre bir geliştirme ortamı (IDE) ile birlikte Android için bir uygulama oluşturmak için kullanılan tüm yardımcı programlar ve dosyalar. Bir IDE, kod dosyalarınızı düzenlemek, derlemek ve çalıştırmak için açtığınız bir programdır.

Platform Android Studio Paketi Boyut
Windows
(64-bit)
android-studio-ide-181.5056338-windows.exe
Tavsiye edilen
927 MB
android-studio-ide-181.5056338-windows.zip
No .exe installer
1001 MB
Windows
(32-bit)
android-studio-ide-181.5056338-windows32.zip
No .exe installer
1000 MB
Linux android-studio-ide-181.5056338-linux.zip 1007 MB
Mac android-studio-ide-181.5056338-mac.dmg 989 MB
  • Önceleri, Android geliştirme için standart IDE Eclipse kullanılır idi, ancak şimdi bir Google ürünü olan ve daha işlevsel bir Android Studio platformu kullanılıyor.

5.1.2 Java ile Android Programlama

Java Programlama dili ile Native olarak android uygulama geliştirmek mümkündür.  Java ile programlama yaparken duyacağımız JVM, JRE ve JDK terimlerini bilmemiz gerekli.

Tablo 5.1 Android Studio Paketleri

JVM (Java Virtiual Machine – Java Sanal Makinesi )

Java’nın en temel ve en cazip özelliği her işletim sisteminde çalışabilmesidir, bunu sağlayan yapı ise JVM‘dir. Java platformunun bağımsızlığı temel olarak Java sanal makinesinden (JVM) oluşur. JVM nesne modülü formatı olan class uzantılı sınıf dosyalarının belleğe yüklenmesi, kontrol edilmnesi ve çalıştırılması için gereken hizmetleri sunan sanal bir programdır. Temel görevi sınıf dosyalarını yorumlamaktır. [1]

Şekil 7: Java Sanal Makine

WORA prensibi ile çalışır.[2]   Hangi işletim sistemi veya donanımın mevcut olduğuna bakılmaksızın, JVM, programların içinde çalışması için öngörülebilir bir ortam oluşturur.

JRE (Java Runtime Environment- Java Çalışma Zamanı Ortamı)

Java teknolojisiyle yazılmış uygulamaları ve küçük uygulamaları (applet) çalıştıran bilgisayar kullanıcılarına gerekli ücretsiz temin edilen bir bir Java Sanal Makine uygulamasıdır. Java Runtime Environment, java programlarını çalıştırmak için Java sınıflarından oluşan bir kütüphaneye sahip bir uygulamadır.

JDK (Java Development Kit – Java Geliştirme Kiti)

Java Geliştirme Kiti Java geliştiricilerine yönelik Oracle firması tarafından hazırlanmış bir üründür. Java’nın kullanıma sunulmasından beri en geniş kullanım alanına sahip Java geliştirme kitidir.

JDK; JRE, Java Compiler, Debug Tool (hata ayıklama) ve diğer gerekli araçlardan oluşur.

Yazmış olduğumuz “.java” uzantılı kodumuzu derleyip JVM‘in okuyabileceği “.class” uzantılı hale getirebilmemiz için Java Geliştirme Kiti’ne ihtiyaç duyarız.
Java Geliştirme Paketi (JDK) Java kodunu bytecode’a çevirir, onu JVM’ye yükler ve farklı işletim sistemlerinde çalıştırır. Bunun yanında Java uygulamaları geliştirmek ve çalıştırmak için gerekli diğer tüm araçlarıda barındırır.

Java programlama dili

Java dili, açık kaynak kodlu, platformdan bağımsız, yüksek performanslı, çok işlevli, yüksek seviye bugüne kadar kullanılan en yaygın ve popüler programlama dillerinden biridir. Dilin ilk versiyonu 1996 yılında Sun Microsystems’ın mühendisi James Gosling tarafından yazıldı ve ardından Oracle tarafından desteklendi. Java, çeşitli görevler için kullanılabilecek evrensel bir programlama dili olarak tasarlanmıştır. Ve şimdi Java dili uzun bir yol kat etti, birçok farklı sürümü yayınlandı. En son sürümü, Eylül 2018’de yayımlanan Java 11’dir. Java, basit bir evrensel dilden bütün bir platforma ve çeşitli görevlerde kullanılan çeşitli teknolojileri birleştiren bir ekosisteme gelişti: masaüstü uygulamaları oluşturmaktan büyük web portalları ve servisleri yazmaya kadar. Ayrıca, Java dili sıradan bilgisayarlar, tabletler, akıllı telefonlar ve cep telefonları ve hatta ev aletleri için yazılım oluşturmada kullanılır. Android mobil işletim sisteminin popülerliği de dilin gelişiminde katkısı olmuştur.

Şekil 8: WORA Prensibi

Bir Java yazılımı geliştirilmesinde Programcı Java kodunu yazar (dosya .java olarak kaydedilir. Bu kod bir Java derleyicisi ile derlenir. Sonuçta byte code adı verilen (.class uzantılı byte code) bir tür makine kodu oluşur. Platform bağımsızlığını sağlayan şey byte code’dur. Çünkü bir kere bytecode oluştuktan sonra yazılım sanal makine içeren tüm işletim sistemlerinde sorunsuz çalışır. Bu “byte code” Java Sanal Makinesi tarafından satı satır yürütülür. Bu byte kod taşınabilme özeliğine sahiptir. Bu özellik JAVA dünyasında WORA (Write Once Run Anywhere (bir kere yaz ve her yerdeçalıştır) ) sloganı ile bilinir.

Şekil 9:JVM

 

Bazı java aileleri ve yapabilecekleri aşağıda sıralanmıştır [3]:

j2se (JAVA to Standard Edition): Java’nın standart sürümüdür ve temel fonksiyon ve özellikleri içerir. Genelde java programlama dili denilince kastedilen API’nin ismidir.

j2ee (JAVA to Enterprise Edition): Java’nın gelişmiş sürümüdür. Genelde web programlamayı içeren JSP gibi eklentiler bu paketin içerisindedir.

j2me ( JAVA to micro edition): Java’nın küçültülmüş sürümüdür. Standart sürümü olan J2SE’ye göre daha hafif ve daha hızlı olarak tasarlanmıştır. Burada tam bir alt küme olarak düşünmek ve j2se’de bulunan herşeyin j2me’de de olacağını sanmak bir hatadır. J2ME içerisinde programlanan ortama göre (örneğin cep telefonu) özel olarak kullanılan ilave sınıf ve kütüphaneler bulunmaktadır.

j2card (JAVA to card): JAVA’nın akıllı kartlar (smart cards) için geliştirilen paketinin ismidir.

public class Program

{

public static void main (String args[])

{

System.out.println(“Hello Java!”);

}

}

Java nesne yönelimli bir dildir, bu nedenle tüm program etkileşimli sınıflar kümesi olarak temsil edilir. Bu durumda, bir Program sınıfı tanımlanır.

Bir sınıf tanımlarken, önce bu erişimin herkes tarafından erişilebilir olacağını belirten bir kamu erişim değiştiricisi gelir, yani onu komut satırından başlatabiliriz. Daha sonra sınıf anahtar kelimesi ve daha sonra sınıf adı gelir. Yani, sınıf Program olarak adlandırılır. Kıvrımlı parantez içinde adından sonra sınıfın içeriğidir.

Kotlin ile Android Programlama

Şekil 10: Kotlin

Kotlin, 2010 yılında Rus şirketi JetBrains’ten tarafından hazırlanmaya başlanan genç bir dildir. 2011 yılında “JVM Language Summit” etkinliğinde duyuruldu. Google I / O 2017  konferansında, Android geliştirme ekibi, Kotlin’in Android uygulamalarının geliştirilmesi için resmi destek aldığını bildirdi. Proje açık kaynak kodludur. Github adresini ziyaret ederek projeye destek olabilir veya inceleyebilirsiniz. Adı Rusya’da bulunan Kotlin adasından gelmektedir.

“Java varken neden böyle bir dil geliştirdiniz?” sorusuna firma “daha özlü kodlar yazmayı sağlamak için” demiştir. Yani Kotlin ile Java’ya göre daha kısa ve daha özgün şekilde kodlama yapıla bilinmektedir.

Kotlin programlama dili ile JVM uygulamaları( Server-side Uygulamalar), Android Uygulamaları, Browser uygulamaları (JavaScript tabanlı Web Uygulamaları), Native Uygulamalar ( MacOS, iOS ve Gömülü sistemler Uygulamaları) geliştirilebiliniyor.

Java, C ve C ++ gibi, Kotlin statik olarak yazılmış bir dildir. Hem nesne yönelimli hem de prosedürel programlamayı destekler. Yukarıda belirtilen dillere benzer şekilde, bir Kotlin programının ana kodu, bir main komut satırı argüman dizisinden geçirilen bir işleve yazılır:

package merhaba

fun main(args: Array < String > ) {

val scope = “Dünya”

println(“Merhaba, $scope!”) // noktalı virgül isteğe bağlıdır

}

Şekil 11: Kotlin ile Native uygulamalar yapma

Kotlin ve Java-Android İlişkisi

Kotlin’in başlıca özellikleri ve faydaları şunlardır:

  • JVM bayt kodu veya JavaScript ile derlenir.
  • Mevcut tüm Java çerçevelerini ve kitaplıklarını kullanabilir.
  • Kotlin’de null hatası almak zordur.
  • Dil öğrenmek çok kolaydır.
  • Kaynak kodu açıktır.
  • Doğru işlev türleri vardır.
  • Null-safety, Smart casts, String templates,Properties, Primary constructors, Range, Operator overloading, Data Classes gibi boş güvenlik ve veri sınıfları Kotlin de olan Java da olmayan özellikler arasındadır.
  • Kotlin’ de akıllı tip dönüşümleri vardır.
  • Kotlin’ de her şey bir nesnedir.
  • Sunucu (Server) ve istemci (Client) tabanlı web uygulamaları geliştirmeyi desteklemektedir.
  • Java ile yüzde yüz uyumlu çalışıla bilirlik.

Kotlin dilini öne çıkaran en önemli etkenlerden birisi Google firmasının Android Geliştirme bölümünün bu dile güvenmesi ve Android uygulamaları geliştirmek için desteklemelerini duyurmasıdır.

Kotlin, RxJava ve RxAndroid

ReactiveX ilk olarak Microsoft tarafından ortaya çıkarılmış bir kütüphanedir. Observable yaklaşımı[4] kullanan ardışık ve olay tabanlı programlar içindir.

RxJava da ReactiveX’in Java Virtual Machine için gerçeklemesi (implementation) aslında. Java 6 ve üzerinde kullanabiliyor.

Sınıf beyanı:

Kotlin aslında Java dili ile etkileşime girme ihtiyacı ile tasarlanmıştı. Mevcut Java kodu, Kotlin’den doğal bir şekilde çağrılabilir ve Kotlin kodu da Java’da sorunsuz bir şekilde kullanılabilir.

class Person(

id: Int,

name: String,

surname: String

) : Human(id, name),

KotlinMaker {

// …

}

 

[1]              https://www.javaworld.com/article/3272244/core-java/what-is-the-jvm-introducing-the-java-virtual-machine.html   27/12/2018

[2]              WORA : Write once, run anywhere (Bir kere yaz, her yerde çalıştır.)

[3]              https://denizalkan.com.tr/tum-kategoriler/java-programlama-dili/                        :08.12.2018

[4]              Bilinen yordamsal (prosedürel) programlamada olduğu gibi ardışık olarak işlenmiş kodsal süreçleri adım adım yerine getirip tepki göstermekten ziyade, olay tabanlı duyarlılık sergilemekte olan ve belli başlı olaylar cereyan ettiği zaman refleks göstermesine observable yaklaşımı denir.

Bu ve devam edecek anlatımların tamamı ve sınavlar

tez.hilmibilici.com 

alt domaininde yayındadır. Tezimi paylaşıma açıyorum. Alın teridir, lütfen paylaşırken kaynak belirtmeyi unutmayın. 


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir