Genel

Bir Fikirden Appstore / Playstore’daki Uygulamaya Uzanan Yol…

Bundan neredeyse bir buçuk sene önce, 2024 eylül ayında aklıma gelen bir fikir, bugün Appstore ve Playstore’da bir uygulamaya dönüşerek, yayımlandı. Bu zaman zarfında neler yaşandığını kronolojik olarak sizlerle paylaşmak istiyorum. Buradaki amacım benim gibi bir fikri olan ve bir startup bünyesinde bu fikrini hayata geçirmek isteyenlere bir nevi yol haritası sunabilmek.

Ben bir backend programcısıyım. Ama insan mecbur kalınca hem web hem de mobil uygulama geliştirici olabiliyormuş. Aklıma bu fikir ilk geldiığinde doğal olarak backend kısmı ile başladım, çünkü bildiğim en iyi kısım orasıydı ve mobil uygulama konusunda hiçbir tecrübem yoktu. Bu sebeple ilk arayüzleri ve alan modelini geliştirerek başlamamın doğru olduğunu düşündüm.

Normal şartlar altında en sağlıklı adım fikri hızlıca bir prototip haline dönüştürmek ve potansiyel müşteriler ile görüşmek olurdu, lakin bu anlatıldığı kadar kolay bir şey değil. Benim düşündüğüm çaptaki proje için hemen öyle kolay bir prototip (MVP; miminum viable product) geliştirmek kolay değil. Ayrıca bu tür ürünlerin prototip olarak müşterilere gösterilmesi ve oradan gelecek geri bildirim yanıltıcı olabilir. Geniş çaplı bir fikrin ve projenin küçük bir prototipe sıkıştırılması çok zor bir şey. Ben bunun yerine doğrudan potansiyel müşteriler ile temas kurarak, fikir hakkında ne düşündüklerini ve bu konuda bir çalışmanın doğru olup, olmayacağını anlamaya çalıştım. Ben bir prototipin her zaman gerekli olmadığını, bunun yerine sağlam bir piyasa araştırması ile ihtiyacın doğrulanabileceğini düşünüyorum. Nitekim bu aynı zamanda müşterilerin ihtiyaçlarını daha yakından tanıma fırsatı verdiği için oluşacak ürünü de şekillendirmek kolaylaşmakta.

Birinci Ders: Eğer aklına gelen fikri hiçbir şekilde yazılıma dönüştürme kabiliyetin yoksa ya başlama ya da gerekli alanlarda sana destek olacak birileri ile ortak ol. Bazı şeyleri kendin koda dökebilsen bile, diğer alanlarda sana destek olabilecek birileri ile yola çıkman daha doğru olacaktır. Her şeyi tek başına yapamazsın!

İkinci Ders: Eğer kısa bir zaman içinde bir MVP oluşturabiliyorsan, bunu yap ve potansiyel müşterilerine onunla git. Eğer bu mümkün değilse, hiç zaman kaybetme ve geniş kapsamlı bir piyasa araştırması yap. Konuştuğun her potansiyel müşteri fikrinin ne kadar doğru olduğu konusunda sana geri bildirim sağlayacaktır.

Backend vücut bulacak ürünün sadece bir tarafı. Asıl gerekli olan son kullanıcılar için bir mobil uygulama geliştirmek. Ben Java’yı bildiğim için mobil uygulamayı Android cıhazları için geliştirebileceğimi düşündüm ve kolları sıvadım. Kısa bir zaman sonra birşey ortaya çıkmadı değil, lakin sonuç itibarı ile ben bir backend yazılımcısıyım ve mobil yazılım demek çok büyük bir oranda UX/UI hakimiyeti ve görsel tasarım demek. Bunlardan ne yazık ki mahrum birisi olarak o ilk Android versiyonunu görmenizi bile istemezdim.

Üçüncü Ders: Startup kurarken hakim olmadığın alanlarda da çalışmak zorunda kalacaksın. Kısa bir zamanda gerekenleri öğrenerek, yoluna devam etmek zorundasın. Kervan yolda dizilir mantığı her zaman geçerlidir. İnsan yapa yapa her şeyi öğreniyor.

Dördüncü Ders: Üçüncü ders için yazdıklarımı unutun, insan ne yazık ki her daim her şeyi öğrenemiyor, benim mobil uygulama için tasarım yapmayı öğrenemediğim gibi.

Ben ne yazık ki tasarım, masarım takmadan mobil uygulamayı geliştirmeye devam ettim. Tabi doğal olarak akla ilk gelen soru şu olmalı: İPhone cihazlar için mobil uygulama nasıl yazılacak? Buna biraz sonra geleceğim, zaten başımı yakan da bu oldu 🙂 Buraya gelmeden önce şu mobil uygulama tasarımı konusuna tekrar bir dönelim.

Beşinci Ders: Anlamadığın işleri profesyonellere yaptır ki ortaya çıkan birşeylere benzesin ve senin başka şeyleri yapmaya vaktin kalsın. Şimdiki aklım olsa mobil uygulama tasarımı için hemen bir profesyonel tasarımcı bulup, gerekli çalışmaya yaptırırdım. Ama ben inat ettim ve neredeyse Android için mobil uygulamayı biitirdim. Herşey çalışır durumdaydı lakin tasarım trajikomik bir durumdaydı. Bu şekilde görücüye çıkması mantıklı değildi. Tabi benim bunu o zaman kavramam çok kolay değildi. Sonuç itibarı ile çalışan bir mobil uygulamam vardı ve şimdi sıra İPhone cihazları için aynı uygulamayı tekrar geliştirmeye gelmişti.

Bir akıllılık edip, uygulamayı İOS için SwiftUİ ile geliştirecek bir freelance yazılımcı bulayım dedim. Demez olaydım:

Altında Ders: Para verip birşeyleri birilerine yaptırmaya çalışmayın, özellikle bu bir mobil uygulama ise! Bu bağımlılık ilerde başınıza her türlü işi açabilir!

Bir programcı ile belli bir ücretle anlaştıktan sonra bu işi başkasının üstüne yıkmış oldum. O ne yaptı? Bir zaman sonra ben işin içinden çıkamıyorum dedi ve bırakıp, gitti. Ortada kalmışlık hissi ne yazık ki güzel bir his değil. Ben bu gibi durumlarda yani kritik denebilecek gelişmelerde kontrolü ele alma taraftarıyım. Buradan çıkan sonuç şu: tekrar yolda bırakılmamak için İÖS SwiftUİ ile uygulamayı benim geliştirmem şart! Hemen bir Macbook aldım ve Xcode ile mobil uygulamayı geliştirmeye başladım. Bu arada ne Macbook’la daha önce çalışmışlığım var ne de SwiftUİ ile kod yazdım.

Yedinci Ders: Gözün kesinlikle yılmayacak! Ne yapman gerekiyorsa, onu yapacaksın!

Kısa bir zaman sonra SwiftUİ ile geliştirdiğim uygulama şekillenmeye başladı. Hızlı bir şekilde bu uygulamayı bitirdim. Elimde şimdi mobil uygulamanın bir Android bir de İOS versiyonu vardı ve birbirlerine %100 benzemiyorlardı. Bir şey değiştirmek zorunda olduğumda her iki platform için aynı kodu iki sefer yazmam gerekiyordu. Ayrıca tasarım da çok kötüydü. Bu şekilde görücüye çıkmak iyi sonuç getirmeyecekti.

Sekizinci Ders: Gerekiyorsa yaptıklarını bir kenara koyup, yeniden başlayabilmelisin.

Mobil uygulama için gerekli kodu sadece bir sefer yazmam gerektiği kanaatina vardım. Bu amaçla geliştirdiğim her iki uygulamayı çöpe atarak, flutter öğrenmeye başladım.

Dokuzuncu Ders: Yazılım için en kral bilgisayar bir Macbook pro’dur. Son 30 yıl Windows kullanmış birisi olarak, ne kadar acı çektiğimi Mac ile anlamış bulunuyorum!

Flutter ile kodu yazmak çok eğlenceliydi. Bu arada kendimi tasarım konusunda da geliştirmeye önem verdim. Sonuç itibarı ile dribbble.com gibi sitelerde güzel tasarımlar bulmak ve onlardan ilham almak kolay. Ayrıca Flutter ve Dart ile arayüz tasarımı ve programlaması çok daha kolay. Bu yüzden flutter ile geliştirdiğim uygulama daha çok göze hitap eder durumda diyebilirim.

Ben backend ve mobil uygulamayı yavaş yavaş geliştirirken, bu işin çok uzun süreceğini gördüm ve ekibi genişletme kararı aldım.

Onuncu Ders: Yazılım ekip işidir. Tek başınıza karmaşık yapıdaki bir yazılım ürününü çıkarmanız çok uzun zamanınızı alabilir.

Artık bir yazılım ekibimiz vardı ve backend ve mobil uygulamayı ekip içinde geliştirmek çok daha zevkli bir hale gelmişti. Ama bizi bekleyen daha bir sürü problem vardı. Bunlardan bir tanesi örneğin ürün için kullanılacak ismi bulmak.

İsim konusunda ne yazık ki çok dikkatli olmak gerekiyor. Aslında aranan bir marka ismi ve büyük bir ihtimalle insanın aklına gelebilecek tüm isimler piyasada birileri tarafından kullanılıyor. Bu sebepten dolayı isim bulmak çok güç. Ayrıca birçok isim marka olarak patentlenmiş durumda, yani kullanmanız imkansız. Biz en az 4 sefer ismi değiştirmek zorunda kaldık. Tabi doğal olarak burada bir sürü hata yaptık.

On Birinci Ders: Bir isim bulduğunda avukatın aracılığı ile marka araştırması yaptır ve patentlenmemiş bir ismi ivedilikle Türk Patent üzerinden tescil ettir.

Ben tabiki bunu sonradan öğrendim. Ne yazık ki uygun olduğunu düşündüğüm bir domain ismini para vererek satın aldım ve projeyi geliştirmeye devam ettim. Birgün playstore içinde arama yaparken, benim kullanmak istediğim ismi taşıyan bir uygulama ile karşılaştım. Artık kendimi nasıl hissettiğimi siz düşünün! Yaptığım araştırma sonunda kullanmak istediğim ismin daha önce patentlendiğini öğrendim. Ne yazık ki satın aldığım 7 adet domain ismini çöpe atmak zorunda kaldım.

On İkinci Ders: Kesinlikle yılmak yok, yola devam!

Bundan sonra yeni ismi bulmak için çok uzun bir süreç başladı. Aklıma gelen her ismi not ettim. İnsanın aklına çok fazla birşey gelmiyor zaten 😉 Neyseki sonunda uygun bir ismi bulduk: Vellkam! İsmi akabinde avukatım aracılığı ile marka olan tescil ettirdik.

Tekrar yazılıma geri dönelim. Bu arada ekip olarak günlük çalışmalarımızı sürdürüyoruz ve hergün nihayı amacımıza yaklaşıyor gibi hissediyoruz, lakin yazılım meşakkatli bir iş ve herşey ne yazık ki uzun sürüyor.

Ben bu arada mobil uygulama ve backend yazılımı yani sıra teknik altyapıyı oluşturmak için kolları sıvıyorum. Burada birden bir yazılımcıyken bir devops’a dönüşmek gerekiyor. Bir backend’ci olarak devops konularına aşinayım ve gerekli teknik altyapıyı kurmak zor olmuyor. Bu konuda yaptığım çalışmaları blog yazıları olarak sizlerle paylaşıyorum.

Backend ve mobil uygulama geliştirmek sizin elinizde olan bir şey. Ama sizin elinizde olmayan bir şey var, o da uygulamanın appstore be playstore da publish edilmesi. Siz tabi elinizden geldiği şekilde mobil uygulamaları appstore ve playstore için hazırlıyorsunuz, lakin nihayi kararı Apple/Goole veriyor ve bu çok uzun bir süreç haline gelebiliyor. Nitekim playstore da bir uygulamayı yayımlatmak deveyi hendekten atlatmaktan çok çok daha zor. Bugün geliştirdiğimiz uygulamanın başvurusunu neredeyse 3 ay önce yaptık. Bunun için hem appstore hem de playstore’da bir geliştirici hesabının açılması gerekiyor. Her iki yerde bunu ücret karşılığı yapıyor. Appstore’da çok fazla bürokrasi yokken, playstore zorunlu test kademeleri ve test yapan kişi sayıarı ile sizi yıldırma politikası güdüyor. Burada da yine yılmayıp, gerekenleri yapmak şart. Biz an itibarı ile iki platformda da uygulamamız ile yer alıyoruz.

Size bu serüvenin küçük bir kesitini aktarmaya çalıştım. Bir buçuk sene gibi bir zaman geçti neredeyse, biz sadece yolun başına gelebildik. Bundan sonra ürünün gerçek kullanıcısı ile buluşturulması geliyor. Bizim için heyecan verici bir zaman başlıyor.

Bir yazılım ürününü geliştirmek çok zevkli bir iş, hele hele bir ekiple bunu yapıyorsanız. Ama asıl iş ürünü geliştirmek değil, onu pazarlayabilmektedir. Bunu yapabilenler günün sonunda kazanıyorlar.

EOF (End Of Fun)
Özcan Acar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir