Android/Java Yatırım Yapmak Mantıklı Mı?
-
Bir konuda kafam karışık. Sizin görüşlerinizi merak ediyorum.
- Yazılan oyunların %99 u C++/C# tabanlı oyun motorlarında yazılıyor. Birden çok platform için. Pek Java kullanılmıyor. (Esas para kazandıran şey oyunlar)
- Uygulamaların bile çoğu Java ile yazılmıyor. Mesela yanlış hatırlamıyorsam şu uygulama Unity üzerinde yazılmış.
https://play.google.com/store/apps/details?id=com.t11.skyviewfree
- Yine NASA 'nın şu uygulaması da Java ile yazılmamış. Bir JS framework ile yazılmıştı.
https://play.google.com/store/apps/details?id=gov.nasa
Zaten bir uygulama hem Android markette hem iOS markette varsa büyük olasılıkla çapraz platform araçlar kullanılmıştır (C++, Unity, JavaScript frameworkler falan).
Herkesin hem Java hem Obj-C yardıracağını sanmıyorum.
Durum böyleyken Android için Java öğrenmek amelelik gibi geliyor bana. Zaman harcamak istemiyorum. İş ilanlarına da bakıyorum, hepsi web sayfanın servisini uygulamaya gömecek adam arıyorlar. Verilen emeğe değmeyecek işler.
Aranızda bu alanda çalışanlar var mı? Ne tür işler yapıyorsunuz?
EDIT
Google 'ın da Go dilinde SDK yayınlayacağı falan söyleniyordu. Böyle de bir durum var.
SkynetX tarafından 13/Tem/16 15:03 tarihinde düzenlenmiştir -
Güzel konu, deneyimli abi ablalardan önerileri dinlemek isteriz.
Özellik unity konusunda. Yada sektör nereye yöneliyor/gidiyor.
-
Hocam bildiğim kadarıyla Android de JAVA ile yaptığını JS ile C++ ile yapamıyorsun DIYE biliyorum sorsan ki örnek ver diye. Hiç araştırmadım bilmiyorum. Ben android'e JAVA dan başladım. Yani ona bakılırsa C# da da android uygulama yazılıyor XAMARIN ile ee farkı ne diyeceksin bilmiyorum. Neden Java kullanıyorum'a geleceksen de Android studio JAVA ile kodlanıyor. Bu yüzden java Android'in kendi ide si de Android Studio. LİGBDX ile oyun yapılıyor JAVA da iyi mi güzel mi bilmiyorum ama Unity 3d ile Masaüstü de ANDROİD de IOS da yapabiliyorsun Unity daha iyi güzel arayüzü falan hoş pek kod gerektirmiyor arka planda çoğu işlem zaten entegreli. Geriye dönecek olursak Android deki uygulamalar JAVA ile yapılıyor bir çoğu. Ama Java da C den çıkma şimdi adam C dilinde uygulama yapar derler Android'in anlayacağı apk dosyasını oluşturur RAM ile ilgili işlem yatırır arkaya servis yaza BroadCast tarzında birşey yazar yayın alıcısı yapar. bu sefer sisteme entegre eder. Mesela bu Root işlemlerinin böyle olduğunu düşünüyorum. Çoğu C C++ ile yazılmıştır. Yani her dille hepsi yapılıyor da. Neyin ne kadar yaptığı önemli birde yazan kişi önemli. mesela @Unbalanced adam C# da android ve IOS (emin değilim) yazıyor ama IOS Swift Android de JAVA adam 2 sini de kullanmıyor C# da direk cross platform'a hakim. Ne kadar biliyor dili 10 üzerinden 7 ama bütün işlerini halledebiliyor mu ? evet Javayı ne kadar biliyor 10 üzerinden 2 bu adamın dönüp JAVA ile program yazması mantıksız zaten bu yüzden C#. Yani sen oturup C++ da da Android yazarsın ama C++ ne kadar biliyorsun bu önemli. Ben böyle düşünüyorum tabi . Android de de öyle çok iyi değilim. daha tecrübeli kişiler vardır yazarlarsa bizde bilgileniriz Örneğin @JPriest , @Unbalanced , @YeniHarman ...
-
Hocam embarcadero firması C++ yada object pascal ile hem android hem ios işletim sisteminde uygulama geliştirek için firemonkey çıkardı ama stabil olduğu söylenemez. ama iyiye doğru gidiyor.
-
Java'dan çok yatırım yaptığın şey Android. Android'e de yatırım yapılır.
-
Tercih edilmeme sebebi, ucuz olmaması.
Her platform için ayrı adam alırsan daha fazla masrafın olur.
Yoksa "native" dil ile diğerlerini hiçbir konuda kıyaslayamazsın.
Türkiye' deki iş şartlarında da konuya yazdıklarına katılıyorum @SkynetX .
@masteryoda çok eksiği vardı, embarcadero' nun. Ufacık GCM' i uygulamaya dahil edebilmek için 40 takla atmıştım vakti zamanında. Ayrıca kodun boyutu çok fazla oluyor ve çok ağır çalışıyordu uygulama. (Son çalışmam XE7 ile)
sonrasında naptılar bilmiyorum, çünkü bana diz çöktürüp tövbe ettirmişti :D
Ek : Eğer öğrenmemiş olsaydım, ben de başlangıçta Java' yı tercih etmezdim. En azından bir cross-platform dil, sonrasında native kasıcaksam Swift en son Java.
İş Açısından : Çalıştığım yerde bile cross-platform' a geçme kararı almıştık ama sebebi tamamen 1 elemana daha fazla para vermemek içindi.
Freelancer Açısından : Hem Android için ek ücret alıyorum, hem IOS için. Bu da fazladan getiri demek oluyor (:
ozgunlu tarafından 13/Tem/16 15:41 tarihinde düzenlenmiştir -
@doganaydin , @buremba @jpriest ' e pm atabilirsin yani görmeleri biraz zor o yüzden diyorum.
aralarında oyun yapan doganaydin dı sanırım. -
Çok geniş bir tartışma konusu aslında bu. Söylediğine ne haklısın denebilir ne de haksız. Çünkü bu cevaba referans bir sorun olmalı. Yapacağın şey bir web servisle çalışan basit bir uygulama ise haliyle çok fazla işlem gücüne ihtiyacın olmadığı için verimlilik ve performans kaygın olmaz. Ama bir oyun veya uygulama geliştiriyorsan, pil tüketiminden, işlemci kullanımına, ağ kullanımına kadar bir çok parametreyi hesaplayarak bir geliştirme yapmak zorundasın. Geliştirdiğin oyun veya uygulamada iş yapsın istiyorsan, kullanıcın en iyi deneyimi almak ister, sürekli kilitlenen, şarjını saatler içinde bitiren, telefon hafızasını fazlasıyla dolduran bir uygulama son kullanıcı için ideal değil. Diğer bir konu da frameworkle programlama dili karşılaştırılması. Framework ihtiyaca göre geliştirilmiş bir olay. Siz bir oyun yapmak istiyorsanız, zamanınız, paranız veya imkanlarınız kısıtlıysa hazır bir oyun motoru olarak unity kullanabilirsiniz elbette. Burda java mı c# mı demek anlamsız olur çünkü ihtiyacınız sadece ortaya bir ürün çıkarmaktır. İhtiyacınız nedir bunu bilmek daha geliştirme yapmak için daha mantıklı bir yol izlemenizi sağlayacaktır. Android developer olmak istiyorsanız da javayı amelelik görmek anlamsız olur. Hangi meslekte hangi işi yaparsanız yapın, temellerini bilmediğiniz bir işte ortaya iyi işler çıkartmanız pek olası değil. O yüzden hybrid geliştirme yapacak olsanız bile java konusunda bilgi sahibi olmanız tabiki de sizin işinizi öne çıkaracaktır. Tartışma hakkında daha detaylı örnekler için, forumda veya internette hangi programlama dilini öğrenmeliyim gibi sorulara verilen cevaplara bakmak da söylediklerimin aklınıza yatmasını sağlayabilir.
-
SkynetX bunu yazdı
Bir konuda kafam karışık. Sizin görüşlerinizi merak ediyorum.
- Yazılan oyunların %99 u C++/C# tabanlı oyun motorlarında yazılıyor. Birden çok platform için. Pek Java kullanılmıyor. (Esas para kazandıran şey oyunlar)
Oyun özelinde konuşursak C++'ın ezici üstünlüğü var haklısın. Ama şunlara da göz atmakta fayda var:
jMonkeyEngine -> http://jmonkeyengine.org
libGDX -> https://libgdx.badlogicgames.com
lwjgl -> https://www.lwjgl.org
- Uygulamaların bile çoğu Java ile yazılmıyor.Bu bilgi maalesef doğru değil. Uygulamaların çoğu Java ile yazılıyor.
Zaten bir uygulama hem Android markette hem iOS markette varsa büyük olasılıkla çapraz platform araçlar kullanılmıştır (C++, Unity, JavaScript frameworkler falan). Herkesin hem Java hem Obj-C yardıracağını sanmıyorumBu bilgi de maalesef doğru değil. Çoğunluk native uygulama. Java, Objective-C ve Swift ile geliştiriliyor. Bu işi hobi olarak değil de ticari seviyede yapan şirketlerin zaten Android developer'ı ayrı iOS developer'ı ayrı oluyor. Büyük kurumlarda Android takımı ayrı, iOS takımı ayrı oluyor. Tek başınaysan haklısın. Bu nokta ve sonrası için @SUPERBICO 'ya aynen katılıyorum.
Güncel ve elit uygulamalar yapmak istiyorsan standart Android SDK'dan pek dışarı çıkmamak gerekiyor. Verdiğin iki örnek uygulamanın da UI'ına bakarsan, Android 5.0 öncesi UI/UX kullanılıyor. Hybrid platformların o tür dezavantajları oluyor. iOS ile Android UI/UX kısmında çok büyük farklılıklar var ve iki tarafa da uygun çıktı üreten sanırım bir tek React Native var, o da bir native değil sonuçta.
İlla ki bir şeylerden feragat etmek gerekiyor maalesef. Fizikteki enerjinin korunumu gibi, yoldan kazanıyorsan kuvvetten kaybediyorsun ya da tam tersi.
-
JPriest bunu yazdıSkynetX bunu yazdı
Bir konuda kafam karışık. Sizin görüşlerinizi merak ediyorum.
- Yazılan oyunların %99 u C++/C# tabanlı oyun motorlarında yazılıyor. Birden çok platform için. Pek Java kullanılmıyor. (Esas para kazandıran şey oyunlar)
Oyun özelinde konuşursak C++'ın ezici üstünlüğü var haklısın. Ama şunlara da göz atmakta fayda var:
jMonkeyEngine -> http://jmonkeyengine.org
libGDX -> https://libgdx.badlogicgames.com
lwjgl -> https://www.lwjgl.org
- Uygulamaların bile çoğu Java ile yazılmıyor.Bu bilgi maalesef doğru değil. Uygulamaların çoğu Java ile yazılıyor.
Zaten bir uygulama hem Android markette hem iOS markette varsa büyük olasılıkla çapraz platform araçlar kullanılmıştır (C++, Unity, JavaScript frameworkler falan). Herkesin hem Java hem Obj-C yardıracağını sanmıyorumBu bilgi de maalesef doğru değil. Çoğunluk native uygulama. Java, Objective-C ve Swift ile geliştiriliyor. Bu işi hobi olarak değil de ticari seviyede yapan şirketlerin zaten Android developer'ı ayrı iOS developer'ı ayrı oluyor. Büyük kurumlarda Android takımı ayrı, iOS takımı ayrı oluyor. Tek başınaysan haklısın. Bu nokta ve sonrası için @SUPERBICO 'ya aynen katılıyorum.
Güncel ve elit uygulamalar yapmak istiyorsan standart Android SDK'dan pek dışarı çıkmamak gerekiyor. Verdiğin iki örnek uygulamanın da UI'ına bakarsan, Android 5.0 öncesi UI/UX kullanılıyor. Hybrid platformların o tür dezavantajları oluyor. iOS ile Android UI/UX kısmında çok büyük farklılıklar var ve iki tarafa da uygun çıktı üreten sanırım bir tek React Native var, o da bir native değil sonuçta.
İlla ki bir şeylerden feragat etmek gerekiyor maalesef. Fizikteki enerjinin korunumu gibi, yoldan kazanıyorsan kuvvetten kaybediyorsun ya da tam tersi.
Tüm arkadaşlara teşekkür ediyorum cevapları için. Eksik olmayın.
@SUPERBICO;
Dediklerinde haklısın. Andoid te (ve iOS ta) uzman olmak için ilişkili ne varsa çok iyi bilmek gerekiyor.
@JPriest;
Oyun konusunda C++ tan şaşmamak gerek. Hem performans konusunda hem de çapraz platform için en iyi seçenek.
Mesela şirketlerde Android geliştiriciler neler yapıyorlar?
Dediğim gibi ilanlara bakıyorum hemen hepsi web servis entegrasyonu yapabilen birileri arıyor.
Hani Android in TV kısmı var, otomobil kısmı var, giyilebilir zımbırtıları da var.
-
SkynetX bunu yazdı
@JPriest;
Oyun konusunda C++ tan şaşmamak gerek. Hem performans konusunda hem de çapraz platform için en iyi seçenek.
Mesela şirketlerde Android geliştiriciler neler yapıyorlar?
Dediğim gibi ilanlara bakıyorum hemen hepsi web servis entegrasyonu yapabilen birileri arıyor.
Hani Android in TV kısmı var, otomobil kısmı var, giyilebilir zımbırtıları da var.
Zaten offline çalışan az uygulama var piyasada. Hemen her şeyin server side bir bağlantısı oluyor. Çalıştığın sektör ne olursa olsun, yaptığın iş ne olursa olsun Webservice entegrasyonu mobilin olmazsa olmazı zaten.
Şirketlerde de SDK içindeki neredeyse her şey kullanılabiliyor. retrofit, otto, rxAndroid, picasso gibi third party library'ler de kendine yer buluyor oldukça. Database'i olan, mesajlara ya da contact'lara erişen uygulamalar, Bluetooth üzerinden başka cihazlar ile haberleşen uygulamalar, NFC ile başka cihazlarlar/tag'lerle etkileşime giren uygulamalar, oyunlar.. Birçok farklı şey yapılabiliyor piyasada. Sadece oyun olarak düşünmemek lazım.