[]

IOS ve Android için mobil uygulama geliştirmeye başlamak

selamlar efenim,

uzun zamandır aklımda iki adet mobil uygulama fikri var. ben fikir babası olayım, yazılım bilen biriyle ortak olarak bu işe gireyim düşüncesindeydim fakat güvendiğim kimseyi bulamadım. bir firmaya da yaptırmak istemedim. dolayısı ile artık kolları sıvayıp bu işi tek başıma halledeyim gazını aldım.

grafik tasarımcıyım. yazılım bilgim lisede 1 yıl aldığım "basic" derslerinden ibaret.(neredeyse yok yani) bir de bu sayılmaz ama "construct 2" ile ufak bir oyun yapmışlığım var. sadece akış diyagramını kullanarak bir şeyler yapabiliyorsunuz.

neyse, benim sorum. nereden başlayayım. araştırıp aydınlanayım derken daha da kayboldum. şimdiye kadar anladıklarım:

- android için "java" öğren.
- android için "kotlin" öğren. (java benzeri ve daha basit.)
- ios için "swift" öğren. (windows'a sanal makine kurup çalıştırabilirsin.)

- ios ve android için "python" öğren. (tek yazılım diliyle olayı hallet.)
- ios ve android için "delphi" öğren (tek yazılım diliyle olayı hallet.)

yani nereden başlayayım çok kararsız kaldım. karar verirsem her türlü online kurs ve tutorial vs. ile 6 ay/1 sene kasıp en azından orta seviye bir şeyler öğrenmek istiyorum.

yapmak istediğim ilk uygulamada:

- google maps/apple maps/yandex yardımı ile çevredeki o uygulamayı kullanan insanları görebilmek. (bu ilçede, bu insanlar var gibi) ortak yapılacak iş için davet etmek. ya da "şurada böyle bir iş varmış" deyip bu işe başvurmak.

- insanların kendi profillerini oluşturması. istenen bilgileri girmesi. dilerse facebook ile giriş yapması.

- ortak olacak insanların, o iş için hangi pozisyonda olacaklarını seçebilecekleri bir arayüz. event benzeri. üstte bahsettiğim gibi bu event haritada gözükecek ya da seçtiğiniz bölgedeki eventleri liste olarak göreceksiniz.

- çok sade bir grup chat

- iş sonrası, ortak olunan insanlara puan verme.

gibi gibi, olabildiğince basit bir arayüz ile bu maddeler benzeri bir uygulamayı ios ve android için yapmak istiyorum.

nereden başlayayım?

 
ben her iki sistem için de uygulama yazmıyorum ama zamanında çok araştırmştım. apple swift, ios uygulamalarında çok avantajlı. o yüzden ortak python ya da delphi öğrenme işine girme derim. Önerim önce swift öğren, ios uygulaması yazmaya başladıktan sonra android için java'ya geç. ya da tam tersi sıralama da yapabilirsin. zaten birini öğrenince diğeri çok daha kolay gelecek. mantık olarak yazılım dilleri algoritma temeline dayalı. gerisi ezber.


  • himmet dayi  (26.12.17 14:31:40) 
himmet dayi+1

programlama dili ogrenmesi zor degil, algoritma mantigi oturmasi onemli. geri kalan hersey zaten googleda arayarak bulunabilir. bir dil ogreneyim de herseyi oradan gelistireyim mantigi yurutur ama topallarsin.
  • hikmetkaraman  (26.12.17 14:48:12) 
ek olarak şunu da belirteyim, temel olarak birçok yazılım dilinde (benim bildiklerimde en azından) belli başlı fonksiyonlar var.

bunlar eğer sorgusu, for döngüsü, while döngüsü, veri girme ve veri yazdırma işlemleri, matematiksel işlemler. bunları bildikten sonra yazılım diline özel fonksiyonlar bu saydıklarımın pratikleşmiş halidir. algoritma mantığını bu fonksiyonlar üzerinden oturtursan diğerlerini @hikmetkaraman'ın dediği gibi google'da arayarak da bulabilirsin.

basit bir örnek verecek olursak, iki tane seri düşünelim (matematikteki kümeler gibi)

a: (1, 2, 3, 4, 5, 6, 7, 8, 9)
b: (2, 4, 6, 8) olsun mesela

bu iki kümenin kesişimini yukarıda belirttiğim sorgularla şu mantıkla bulabilirsin:

for i=1'den 9'a kadar (a kümesinin elemn sayısı)
for j=1'den 4'e kadar (b küme eleman sayısı)


eğer a[i] = b[j] ise,

kesişim kümesine a[i] elemanını ekle

değilse next j,
next i,


falan filan. bu kod yalancı kod olarak geçer. Önemli olan bu algoritmik yapıyla bu kodu oluşturmak. ardından eğer'in, for'un yerine neler gelecek bunu kaynaktan bulacaksın.

bu örneğe göre mesela bir kodlama dilinde direkt kesişim kümesini veren fonksiyon da olabilir. böyle kod yazmana gerek kalmaksızın atıyorum;

c[] = intersection(a[], b[]) gibi bir fonksiyon kullanıp tek satırda işi bitirirsin.
  • himmet dayi  (26.12.17 15:17:57 ~ 15:19:21) 
birz uzattım ama son olarak şunu da söyleyeyim; algoritma mantığının yanında nesnel tabanlı programla (OOP: object oriented programming) mantığını da bilmen lazım ki bu çok kolay. Örneğin uygulamaya bir buton koydun. Bu buton 'object' yani nesne oluyor. Her bir nesnenin de olayları var. Atıyorum bu butona tek tıklama yaptın. Bu olayda neler olacak bu olay başlığının altına kodları yazıyorsun. Diğer olaylar; çift tık, basılı tutma, sürükleme vs. vs..


  • himmet dayi  (26.12.17 15:21:21) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.