İçeriğe geç

KONUM

İstanbul’da mobil uygulama, oyun ve yazılım geliştirme

Beyoğlu’ndaki stüdyomuz 2017’den beri mobil uygulama, Unity oyun ve web geliştiriyor; Türkiye’ye özgü ödeme, KVKK ve konum işlerini canlı projelerde çözdük.

KISA CEVAP

AMG Yazılım, 2017’de bilgisayar mühendisi Ali Mert Güleç’in kurduğu, Beyoğlu, İstanbul’da çalışan bir yazılım stüdyosu. iOS ve Android uygulamaları, Unity mobil oyunlar, SaaS ve web ürünleri geliştiriyoruz. Türkiye’deki projelerde iyzico ve Garanti POS ödemesini, KVKK rıza kayıtlarını ve 81 il, 973 ilçe verisini çalışan ürünlerde kurduk. Görüşmeyi yüz yüze ya da çevrim içi yapabiliriz.

İstanbul’dan hangi işleri yapıyoruz?

Stüdyonun üç kolu var: mobil uygulama, mobil oyun ve web. Uygulama ve web kolları 2017’den beri çalışıyor, oyun kolu en yenisi. Bu sürede 200’den fazla proje teslim ettik. Portföyde müşteri projeleri ile kendi ürünlerimizi ayrı gösteriyoruz; FitZen, Viralance ve Tilting Jar kendi ürünlerimizden.

Mobil tarafta çoğu proje React Native ve Expo ile tek kod tabanında iOS ve Android’e çıkıyor; yönetim panelleri Next.js ile, backend Supabase veya Firebase üzerinde. Bir uygulama genelde tek başına gelmiyor: Karaman’da restoran ve admin paneli, PeakUp’ta stüdyo sahibinin paneli, Garaj’da kataloğu müşterinin kendisinin girdiği yönetim paneli mobil uygulamayla aynı projede geliştirildi.

Kurucu ve şirket sahibi Ali Mert Güleç işi bizzat yürütüyor. Kapsamlı projelerde dönemsel işe alım yapıyor, projeye özel tasarımcı ve mühendis görevlendiriyoruz; ekip büyüklüğü kapsamla birlikte planlanıyor. Basit bir MVP ile çok rollü bir platformun ekibi ve takvimi aynı olmuyor.

Türkiye’de ödeme: iyzico, Garanti POS, kapıda ödeme ve havale

Karaman.com’un mobil uygulamasında sipariş akışı iyzico, Garanti POS ve kapıda ödemeyi birlikte destekliyor. İki sağlayıcının webhook’u ayrı fonksiyonlarda (iyzico-webhook, garanti-webhook) işleniyor. Kural net: başarılı online ödeme restoran onayı yerine geçmiyor, sipariş pending açılıyor ve durum geçişleri yalnız yetkili role bağlı.

Teslimat bölgeleri PostGIS poligonu olarak sunucuda doğrulanıyor, komisyon sipariş toplamı üzerinden hesaplanıyor. Mevcut karaman.com hesapları bir köprü fonksiyonuyla Supabase profiline eşlendi; kullanıcı yeniden kayıt olmuyor. Proje Eylül 2026’da kaynak kod ve kurulum notlarıyla teslim edildi.

Her projede kart ödemesi yok. PeakUp’ta elden alınan ödemede KDV uygulanmıyor, POS ödemesinde oran panelden ayarlanıyor (%20); kural istemci ve veritabanında aynı şemayla doğrulanıyor. ozelokul.com’da ödeme sağlayıcısı kullanılmaması müşteri kararıydı: platform fatura kesiyor, okul havale/EFT’yi panelden bildiriyor, yönetici onaylayınca fatura, abonelik ve denetim kaydı tek transaction’da güncelleniyor.

KVKK’yı bir metin değil, veritabanında izlenen bir zincir olarak kurmak

KVKK uyumu çoğu projede bir çerez bandı ve bir aydınlatma sayfasına indirgeniyor. Bizim kurduğumuz yapılarda rıza veritabanında izlenebiliyor.

  • ozelokul.com: her form onayı consent_records tablosuna yazılıyor; kullanıcı ya da anonim oturum, onaylanan metnin sürümü, bağlam (teklif, randevu, bülten, başvuru ve diğerleri), zaman ve geri alma zamanıyla. legal_texts tablosunda her metin anahtar ve sürümle tutuluyor, yürürlükte tek sürüm var.
  • Photonza: yüz imzası özel nitelikli kişisel veri; aydınlatma ile açık rıza ekranda ayrı, aydınlatma onaya bağlanmıyor. Yüz verisi en geç etkinlik bitişinden 30 gün sonra siliniyor; saatlik bir temizlik işi dosyaları ve kayıtları kaldırıyor, endpoint’ler de aynı sınırı kendileri uyguluyor.
  • Macsug: kvkk_consents migration’ı ve ayrı data-export, data-deletion fonksiyonları kullanıcının erişim ve silme taleplerini karşılıyor.
  • Arayandan: KVKK, çerez ve üyelik sözleşmesi sayfaları uygulamanın (legal) grubunda.

Hukuki görüş vermiyoruz; yazılımın rızayı nasıl kaydettiğini, sakladığını ve sildiğini kuruyoruz.

81 il, 973 ilçe ve Türkçe karakterle arama

Türkiye’ye yönelik bir üründe konum ve dil, şemanın ilk günden bilmesi gereken iki konu.

ozelokul.com’da 81 il ve 973 ilçe seed olarak geliyor ve okul kayıtlarında metin değil yabancı anahtar. Arama tarafında ilike Türkçeyi çözmüyordu: kadikoy araması 0, kadıköy araması 1 sonuç veriyordu ve aksansız yazan kullanıcı hata da görmüyordu. Tetikleyiciyle dolan bir search_text kolonu ve trigram indeksi eklendi; arama terimi de aynı kurallarla normalize ediliyor. unaccent sorgunun içinde çağrılsaydı indeks kullanılamazdı, çünkü fonksiyonel indeks IMMUTABLE fonksiyon ister.

PDF çıktısında da benzer bir tuzak var: jsPDF’in yerleşik Helvetica’sında ı, İ, ğ, Ğ, ş, Ş yok. Roboto, Türkçe karakter aralıklarına indirilip stil başına 515 KB’tan 39 KB’a düşürüldü ve gömüldü.

Diğer projelerde de aynı dikkat var: Arayandan’ın mobil uygulamasında il ve ilçe verisi bir Türkiye API’sinden geliyor, PeakUp’ta cron dahil her katman Europe/Istanbul saatinde çalışıyor, kendi ürünümüz Düzce Biz’de harita yalnız Düzce sınırları içinde açılıyor.

İstanbul’da bir mobil oyun stüdyosu olarak ne yapıyoruz?

Oyun kolu Unity ve C# üzerinde, mobil için. Önceliğimiz seviyelerin el yapımı tahmine değil, ölçülebilir kurallara dayanması.

Kendi oyunumuz Tilting Jar yedi ayda geliştirildi: 300 seviye, 15 bölüm ve 12 ayrı mekanik. Üretim deterministik; tohum seviye indeksi olduğu için her oyuncu aynı seviyeyi oynuyor. Dört katmanlı prosedürel müzik ve beş dil desteği var, oyun App Store’da.

Hallowmark için geliştirdiğimiz Wardlight’ta müşteri her seviyenin çözülebilir olduğunun kanıtını istedi. Üretici önce geçerli bir Hamilton yolu kuruyor, oklar, duvarlar ve kilitler bu yoldan türetiliyor; seviye yapı gereği çözülebilir. 3200 seviye tarandı, 3200’ü de çözülebilir çıktı ve aynı seviyeler iki kez üretildiğinde çıktı bayt bayt aynı. Wardlight.Core katmanında hiç UnityEngine referansı yok; 40/40 EditMode testi yeşil.

Oyun projelerinde reklam ve uygulama içi satın alma kapsama göre değerlendiriliyor. İndirme, gelir ya da elde tutma oranı garantisi vermiyoruz.

Görüşme, teklif ve faturalama nasıl ilerliyor?

İstanbul’daysanız yüz yüze, değilseniz çevrim içi görüşüyoruz. İletişim formundan proje ya da toplantı talebi gönderdiğinizde ihtiyacı inceliyor, gün ve saati e-postayla birlikte belirliyoruz. Mevcut kodunuz, tasarımınız veya bir rakip uygulama varsa ilk görüşmeden önce paylaşmanız görüşmeyi tanışmadan çıkarıp açık sorulara ayırmamızı sağlıyor.

Teklif, kapsam netleştikten sonra hazırlanıyor. Teklifler ülke fark etmeksizin USD üzerinden veriliyor; sitede sabit fiyat ya da paket yok. Ödeme üç aşamaya bölünüyor: başlangıçta, tasarım tamamlandığında ve teslimden önce. Tutarlar ve takvim yazılı teklifte yer alıyor ve tüm süreç faturalı ilerliyor. Türkiye’deki sözleşme ve faturalar AMG Yazılım adına; AMG Yazılım, Ali Mert Güleç’in şahıs işletmesi.

Tasarımı kodlamaya geçmeden önce onayınıza sunuyoruz. App Store, Google Play, sunucu ve servis hesapları sizin adınıza açılıyor; teslimde kaynak kodun tamamı, tasarım dosyaları ve bütün erişimler size devrediliyor.

Sık sorulan sorular

İstanbul’da yüz yüze görüşebilir miyiz?

Evet. Stüdyo Beyoğlu, İstanbul’da; İstanbul’daki müşterilerle yüz yüze, şehir dışı ve yurt dışındaki müşterilerle çevrim içi görüşüyoruz. Formdan toplantı talebi gönderdiğinizde uygun gün ve saati e-postayla birlikte belirliyoruz. Görüşmeden önce ürün fikrini, hedef kullanıcıyı ve varsa mevcut kodu paylaşmanız ilk toplantıyı daha verimli kılıyor.

Türkiye’deki bir proje için teklif TL mi, USD mi?

USD. Teklifler, müşteri hangi ülkede olursa olsun, kapsam netleştikten sonra USD üzerinden hazırlanıyor; sitede sabit fiyat veya paket yok. Ödeme başlangıç, tasarımın tamamlanması ve teslim öncesi olmak üzere aşamalara bölünüyor. Tutarlar ve takvim yazılı teklifte yer alıyor, Türkiye’deki faturalar AMG Yazılım adına kesiliyor.

iyzico mu, bankanın sanal POS’u mu?

İkisi aynı üründe çalışabiliyor. Karaman.com’un mobil uygulamasında iyzico, Garanti POS ve kapıda ödeme birlikte var; her sağlayıcının webhook’u ayrı fonksiyonda işleniyor. Hangisinin kullanılacağı sizin sağlayıcı anlaşmalarınıza bağlı. Hangisi seçilirse seçilsin ödeme başarısı ile siparişin onaylanması ayrı durumlar olarak tutuluyor; restoran onaylamadan sipariş hazırlanmaya geçmiyor.

Yayındaki uygulamamızı mağaza kaydını kaybetmeden yeniden yazabilir misiniz?

Evet. PeakUp’ın yayındaki uygulaması kullanılamaz durumdaydı; eski koddan yalnız logo ve renkler alınarak sıfırdan yazıldı ve mevcut mağaza kaydına 2.0.0 güncellemesi olarak iOS ve Android’de yayımlandı. Müşterinin 19 maddelik talep listesi kabul kriteri olarak ele alındı. Devralmadan önce kod incelemesi yapıyor, mantıklı değilse bunu söylüyoruz.

Uygulamamın KVKK’ya uygun olduğunu garanti eder misiniz?

Hukuki görüş vermiyoruz. Yazılım tarafını kuruyoruz: sürümlü aydınlatma ve rıza metinleri, her onayın hangi metne ve bağlama verildiğini tutan kayıtlar, geri alma, veri dışa aktarma ve silme fonksiyonları, saklama süresi dolan verinin otomatik silinmesi. Bu parçaları ozelokul.com, Photonza ve Macsug’da kurduk; metinlerin içeriği sizin değerlendirmenize kalıyor.

Yalnız İstanbul’daki şirketlerle mi çalışıyorsunuz?

Hayır. Karaman.com bir şehir portalı, Düzce Biz Düzce’ye özel kendi ürünümüz; ikisi de İstanbul dışına yönelik. Yurt dışında da müşterilerimiz var: Upwork’teki 11 değerlendirmenin beşi ABD’den, üçü Türkiye’den, biri Kanada’dan, biri Hong Kong’dan geliyor. Toplantı saatlerini müşterinin saat dilimine göre birlikte planlıyoruz.

Kaynak kod ve hesaplar kime ait olur?

Size. App Store ve Google Play geliştirici hesapları, sunucu ve servis hesapları sizin adınıza açılır. Teslimde kaynak kodun tamamını, tasarım dosyalarını ve tüm erişimleri size devrederiz.

Hazır şablon veya hazır panel kullanıyor musunuz?

Hayır. Kullanıcı ekranlarını ve yönetim paneli ekranlarını projenize özel olarak tasarlayıp sıfırdan geliştiririz. Böylece panel, sizin iş akışınıza göre çalışır.

İLGİLİ STÜDYO NOTLARI

Aklınızda bir fikir varsa,
konuşalım.

Bir tanışma görüşmesiyle başlarız. Kapsamı ve takvimi birlikte netleştirir, size yazılı bir teklif göndeririz.

hello@amgsoftwarestudio.com