Mobil uygulama yapmak için hangi dil kullanılmalı?

Doge

Yetkin
Katılım
23 Şubat 2024
Mesajlar
838
Makaleler
1
Çözümler
8
Beğeniler
459
Merhaba.

Bir randevu alma uygulaması yapmak istiyorum. Genel yazılım bilgim temel seviyede ama hiçbir şey bilmiyorum denebilir tabii. Arayüz resimleri, widget vs. için de öğreneceklerim var.
  • Uygulamanın temel amacı: Farklı tarihlerde randevu saatine göre sıra alabilmek, hangi saatlerde dolu/boş görebilmek, randevu saati yaklaştığında telefona bildirim gelmesi.
Java, Kotlin gibi popüler bir dil seçip öğrenerek devam etmek istiyorum. Proje hedefim şimdilik bu ama çok zor olur mu, başlangıç için zaman kaybı mıdır bilemedim. Kendimi geliştirmek için elle tutulur bir hedef lazımdı, bu proje aklıma geldi.

Bunun yanında sizlerin fikrini de merak ediyorum. Hangi dil ile başlamamı önerirsiniz?
 
Son düzenleme:
Kodlama hiç yapmadıysan ilk temel algortima ve veri yapılarını öğrenerek başla ama direkt giriş yapacağım diyorsan veya bu konularda bilgin varsa, mobil uygulama için flutter iyi bence.
 
Sanırım temelde amacın kendini geliştirmek. Hangi platforma uygulama geliştireceğine göre seçeceğin program ve programlama dili değişiklik gösterir. Mesela uygulamayı sadece Android’e çıkartmak istiyorsan bunun için Android Studio üzerinden Java veya Kotlin tercih edebilirsin, şahsen Java kullanırım.
iOS için ise Swift tercih edebilirsin, her ikisine birden çıkartmak istiyorsan Flutter veya React Native kullanabilirsin.
Bunlar sadece öneri. Bence başlangıç için böyle bir uygulama geliştirmek yerine önce kendini geliştir, ardından proje geliştirmeye başlayabilirsin.
 
Kodlama hiç yapmadıysan ilk temel algortima ve veri yapılarını öğrenerek başla
Bence başlangıç için böyle bir uygulama geliştirmek yerine önce kendini geliştir, ardından proje geliştirmeye başlayabilirsin.
Hangi kaynaklardan veya nereden başlayacağım konusunda yardımcı olur musunuz?

Bahsettiğiniz dillere bakacağım. Sadece Android'e yoğunlaşmak mantıksız olur, her iki platforma uygun olsun isterim elbette.

Çünkü tasarladığım belli bir taslak üzerinde farklı işletmelere göre değişiklikler yapabilmeliyim. İşletme adı ve logosu, işletmeye özel arayüzde resimler, renkler gibi. Forumdaki XenForo gibi küçük çapta belli bir altyapıyı modifiye ederek sunmak. Proje fikri daha bugün aklıma geldiği için birçok şey kafamda oturmuş değil.

Bu bahsettiklerim ileri seviye gibi. Uygun bir yerden başlayarak oraya varmak ve gelişmek istiyorum.

@brkdnmz
 
Son düzenleme:
Merhaba, beni etiketlemişsiniz. Sorunuz güzel denk geldi, yakın zamanda mobil uygulama geliştirmede biraz tecrübe edindim. Elimden geldiğince aktarayım size.

Proje hedefim şimdilik bu ama çok zor olur mu, başlangıç için zaman kaybı mıdır bilemedim. Kendimi geliştirmek için elle tutulur bir hedef lazımdı, bu proje aklıma geldi.

Yazılım bilginizin temel düzeyde olduğunu belirtmişsiniz. Bunun, kafanızda tasarladıklarınızı koda dökeceğiniz süreyi artıracağı şüphesiz tabii. Edinmeniz gereken birçok tecrübe olacak, karşınıza düzeltmeniz gereken birçok hata çıkacak, bol bol araştırma yapmanız gerekecek. Yine de yatırdığınız zaman boşa gitmeyecektir, merak etmeyin.

Proje hedefinizin başlangıç için zaman kaybı olduğunu hiç düşünmüyorum. Öğrenmeye yatırdığınız zaman kaybolamaz, öyle ya da böyle faydalıdır. Gerçekçi ve sizin tabirinizle "elle tutulur" bir hedef, zihninize sağlık. Hem düşündüğünüz her özelliği geliştiremeseniz bile uygulamanın kısmi hali bile hoş ve öğretici olacaktır.

Uygulamanın temel amacı: Farklı tarihlerde randevu saatine göre sıra alabilmek, hangi saatlerde dolu/boş görebilmek, randevu saati yaklaştığında telefona bildirim gelmesi.

Bir kişi, telefonundan randevu aldığında diğer kişilerin telefonunda o saat dolu gözükmeli. Bu işlev için gerekli veriler, kişilerin telefonları dışında merkezi bir yerde tutulmalı yani bu verileri bir sunucu yönetmeli. Terimi biliyorsanız kısaca "back-end" gerekli. Yalnızca mobil uygulama geliştirmeniz yetmeyecek yani, ayrıca bir şekilde sunucu ve veri tabanı da kurmanız lazım. E haliyle telefonun sunucuyla iletişim kurması da gerekli. Aklınızda bulunsun diye söylüyorum, şimdilik kapsam dışında bu konu.

Bunu göz önünde bulundurarak belki de yalnızca telefonda veri tutulmasının yeterli olduğu bir proje fikrine yönelebilirsiniz. Atıyorum bir kişisel not tutma uygulaması için notları telefonda saklamanız yeterli olur. Bu yüzden böyle bir uygulama için back-end ihtiyacı duymazsınız, yalnızca mobil uygulama yeterli olur.



Ben ilk mobil uygulamamı geliştirmeye geçen sene ekimde başlamıştım. Web tarafındaki React ve TypeScript tecrübem sayesinde, React Native'den haberdar olmakla ve uygulamamı hem Android'e hem de iOS'a çıkarma isteğiyle (cross-platform) tercihim React Native (Expo) oldu. Expo, React Native'in birçok açığını kapatan bir framework diyeyim. Geliştirici deneyimini çok iyileştiriyor. Ha, gıcık ettiği noktalar da var ama başka seçenek bilmiyorum ben. : )

Hangi dil ile başlamamı önerirsiniz?

React Native, JavaScript/TypeScript ile cross-platform uygulama geliştirmek isteyenler için uygun bir teknoloji. Flutter (Dart) ve Kotlin/Compose Multiplatform (Kotlin) gibi teknolojiler de mevcut. Merak ederseniz benim önerim React Native. Ben React Native ile yeterince kod yazmışken şu an yeni bir uygulama geliştirmem gerekse geliştiriciye sağladığı kolaylıklardan ötürü Flutter'a şans vermeyi düşünürdüm çünkü biraz denedim ve oldukça hoşuma gitti ama başlangıç için React Native'i tercih ederim. React tarzıyla düşünmek hoşuma gidiyor çünkü. Ayrıca tahmin edebileceğiniz üzere bir teknolojide karar kıldığınızda ilgili programlama dilini öğrenmeniz gerekiyor, dil bariyeri var yani.

Bu cross-platform teknolojilerini kullanmadan Android ve iOS kodlarını ayrı ayrı Java/Kotlin ve Swift ile yazmak da mümkün ama bu en zor ve zaman alıcı seçenek diye düşünüyorum. Bunu ben hiç yapmadım çünkü gerek olmadı. Yine de merak etmiyorum değil. : ) Keyifli görünüyor.

Expo, başlangıç için şöyle güzel bir tutorial hazırlamış, inceleyebilirsiniz: https://docs.expo.dev/tutorial/introduction/

Kafanızdaki soru işaretleri için yapay zeka araçlarına da başvurabilirsiniz, yeter ki yazdığınız koda hakim olun.

Tekrar altını çizeyim: Bolca zaman gerekecek ama meyvesi de bol olacak.
 
Aklımdaki soruları cevapladığınız için teşekkür ederim. Benzer kafa yapısında olmamıza sevindim. Zaman zaman geri dönüp anlattıklarınıza bakabilirim.

Projenin üzerine düşündükçe aslında belirlediğim iş yeri için işlevsiz bir uygulama olacağı ortaya çıktı. Fikir hâlâ güzel ama hiç kullanışlı olmayacakmış ne yazık ki. Şimdilik yapmayacağım.

Unity üzerinden oyun yapmakla başlayıp neler olacağına bakacağım. Bahsettiğiniz gibi daha sonra mobilde daha küçük projeler yapmaya çalışabilirim elbette.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…