Son Forum Aktiviteleri

12
Tümünü Gör

Java, Objective-C ve Diğer Native Platformların Farkı

Selam Arkadaşlar;
Bildiğimiz gibi mobil uygulama geliştirme derken akla ilk gelen diller Android için Java, iOS için Objective-C veya Swift dilleridir. Çünkü bu diller bu platformlar için native uygulama geliştirme araçlarıdır ve herkesin de bildiği gibi bu dillerle yazılan uygulamalar daha hızlı vs. olduğu söyleniyor. Soruma gelecek olursak bu diller bir kenera Qt, React Native, Xamarin vs. bir çok native uygulama geliştirmekten bahseden platformlar mevcut. Bu platformlar hem de cross platform uygulama geliştirmeyi de kolaylaştırıyor. Peki mobil geliştiriciler neden halâ uygulaman native, hızlı vs. olsun diyorsan native geliştireceksin derken Java, Objective-C / Swift öneriyor da bu platformları önermiyor? Qt'dan örnek verecek olursam Android SDK, NDK, Apache Ant kurulumunu mecbur tutuyor ve C++ ile native uygulama geliştiriyoruz. Java, Objective-C / Swift ile yapılan uygulamaların native olmasıyla, diğer native geliştirme platformları ile geliştirilmiş uygulamaların native oluşu arasındaki fark nedir? Teşekkürler!

8 yıl 9 ay önce yanıtladın

Açık Kaynak Kodlu Projeler

21 Temmuz 2017 tarihinde cevaplandı

Selamün Aleyküm;

Apache, BSD ve MIT lisanslarından birisini almış yazılımlar / kodlar açık - kapalı kaynak yazılımlarımızda kullanabiliriz. Bu 3 lisans da bize 'neden kodunu kapattın?' diye sormaz.

http://ozgurlisanslar.org.tr/apache/

http://ozgurlisanslar.org.tr/bsd/

http://ozgurlisanslar.org.tr/mit/

Fakat GPL ve LGPL gibi lisanslar daha farklı kurallar içerir. Mesela GPL lisansını almış bir yazılım / kod:

  • Açık kaynak olmalıdır.
  • BSD gibi GPL ile çelişen yazılım / kod kullanılmamalıdır.

LGPL ise şu şartları koyar (ki bu şartlar çok karışık ve her ağızdan farklı itirazlar çıkar):

  • Kodun açık / kapalı olabilir.
  • LGPL kodu statik olarak bağlayamazsın, paylaşımlı olarak bağlamalısın. Çünkü diğer kullanıcılar istedikleri zaman senin yazılımın üzerinde bu .so, .dll gibi dosyalar sayesinde oynama yapabilmelidir.
  • Eğer LGPL lisanslı kodda değişiklik yaptıysan o değişikliği paylaşmak zorundasın.

http://ozgurlisanslar.org.tr/gpl/gpl-v3/

http://ozgurlisanslar.org.tr/lgpl/lgpl-v3/

Eğer Github, Bitbucket, SourceForge vs. yerlerden kodlar alıp kullanacaksan lisanslara çok dikkat etmelisin. Eğer geliştirdiğin yazılımı dağıtma aşamasına gelirsen lisanslara uyman şart.

Resim Gösterme

13 Eylül 2016 tarihinde cevaplandı

res/drawable klasöründe resimleri tutmalısın. Resimleri vektörel tutabilirsen resim 150x150 boyutlarında da aynı görünür, 550x550 boyutlarında da aynı görünür. Lakin senin resimden kastın sanırım matematiksel şekiller. Bu durumda resimleri GIF olarak bile tutsan yeterli olur sanırım.

Android Studioda ekranı yan döndürme

13 Eylül 2016 tarihinde cevaplandı

Merhaba, AndroidManifest.xml dosyasında şu şekilde değişiklik yapabilirsin:

<!-- Ekran yalnızca dik durumdaki tasarımda kalsın: -->
<activity android:name=".MainActivity" android:screenOrientation="portrait">

<!-- Ekran yalnızca yatay durumdaki tasarımda kalsın: -->
<activity android:name=".MainActivity" android:screenOrientation="landscape">

Ya da şu şekilde activity_main.xml dosyasını dikey ve yatay durumlarda nasıl gözükeceklerini ayarlayabilirsin:

1:

Görsel kaldırıldı.

2:

Görsel kaldırıldı.

3:

Görsel kaldırıldı.

4:

Görsel kaldırıldı.

activity_main.xml: Dikey konumda nasıl bir görüntü olacaksa o şekilde tasarla.
activity_main.xml (land): Yatay konumda nasıl görüntü olacaksa o şekilde tasarla.

cannot be referenced from a from static context HATASI

12 Eylül 2016 tarihinde cevaplandı

Merhaba;
Hata sana şunu söylüyor: Sen Toast toast = new Toast(getApplicationContext()); ile oluşturduğun toast nesnesine değil de direk sınıf olan Toast'a setView, setDuration, show metotları ile değer geçirmeye çalışıyorsun, halbuki Toast bir sınıf ve bu 3 metot yalnızca Toast'dan oluşturulan nesneye atanabilir. Şu şekilde düzenleyebilirsin:

ImageView resim = new ImageView(getApplicationContext());
resim.setImageResource(R.drawable.reklam);
Toast toast = new Toast(getApplicationContext());
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(resim);
toast.show();

 

Android Programla yardım

11 Eylül 2016 tarihinde cevaplandı

Intent intent = new Intent(this, adana.class);

Bu şekilde değiştirirsen çalışır. Burada sınıfın class sabitini çağırmamızın sebebiyse sınıfın referansını elde etmemiz gerektiğidir.