Ana içeriğe geç

Lovable AI: Demo Projeyle Rehber

Learn how to build and publish a mobile app using Lovable AI, integrating it with Supabase for backend services and GitHub for version control.
· 8 dk. oku

Yapay Zeka ile Keşfedin

Lovable, programlama becerisi olmadan herkesin işlevsel uygulamalar oluşturmasına olanak tanıyan bir metinden-uygulamaya hizmetidir. Uygulama fikirlerimizi bir sohbet arayüzü üzerinden anlatırız ve platform bu açıklamaları gerçek, çalışan bir uygulamaya dönüştürür.

Bu eğitimde, Lovable’ı pratik bir şey inşa ederek nasıl kullanacağınızı göstereceğim—veri kalıcılığı, kullanıcı kimlik doğrulaması, e-posta hatırlatıcıları ve ücretli aboneliklerle basit ama eksiksiz bir yapılacaklar listesi mobil uygulamasını adım adım nasıl geliştirip yayınlayacağınızı anlatacağım.

Sonunda, güvenlik endişeleri, kendi araç ve kütüphanelerine sahip geliştiriciler için potansiyel hız eksikliği ve programcı olmayanların hata ayıklarken karşılaşabileceği zorluklar dahil olmak üzere Lovable’ın bazı sınırlamalarını da tartışacağım.

Lovable AI Nedir?

Lovable, yapay zekâ kullanarak fikirlerimizi tarif ederek bunları tam işlevli uygulamalara dönüştürmemize olanak tanır. Bu da geleneksel kodlamanın karmaşıklıklarını kolayca aşabileceğimiz, uygulama oluşturmayı hem geliştirici olmayanlar hem de hızlı prototipleme arayan geliştiriciler için erişilebilir ve verimli hale getirdiği anlamına gelir.

Lovable, ön yüzde React ve Vite kullanır. React, esnekliği ve verimliliğiyle bilinen, kullanıcı arayüzleri oluşturmaya yönelik popüler bir JavaScript kütüphanesidir. Vite ise daha hızlı ve yalın bir geliştirme deneyimi sunan bir derleme aracıdır. Bu çerçeveler, karmaşık UI mantığını üstlenerek uygulamalarımızın yalnızca işlevsel değil, aynı zamanda duyarlı ve akıcı olmasını sağlar.

Arka uç için Lovable, Supabase kullanır; bu, geleneksel backend çözümlerine açık kaynaklı bir alternatiftir. Supabase esasen veritabanı depolama, kimlik doğrulama ve bulut fonksiyonları dahil bir backend sistemi oluşturan araçlar bütünüdür. Verileri yönetmek ve gerçek zamanlı işlevselliği etkinleştirmek için uygulamamızla birlikte çalışır.

Lovable, ürettiği kodu arayüzünde doğrudan düzenlememize izin vermez. Ancak, uygulamamızın kodunu bir GitHub deposuna bağlama olanağımız vardır. Bu bağlantı, GitHub’da yapılan değişikliklerin doğrudan uygulamaya yansıması anlamına gelir ve iş birliğine dayalı geliştirme ile sürüm kontrolü sağlar.

Lovable yapısı: Arka uçta Supabase, ön yüzde React ve sürüm kontrolü için GitHub

Bu kurulum, kod yazmadan kullanılabilen bir arayüzün kolaylığını GitHub’ın sunduğu esneklik ve kontrolle birleştirir. Yine de, küçük değişiklikler yapmak için kodu doğrudan düzenleyebilmeyi sık sık dilediğimi fark ettim.

Lovable ile İlk Projenizi Oluşturma

Başlarken

Lovable ile başlamak için önce web sitelerine gidip ücretsiz bir hesap oluşturmamız gerekir.

Ücretsiz hesabımızı oluşturduktan sonra, platformun yapay zekâ asistanına günde beş mesaj gönderebileceğiz. Bu sınırlamalar içinde ne kadar ilerleyebileceğimizi görmek için güzel bir meydan okumadır.

İlk mesajda, projemizin kısa bir tanımını veriyoruz. 

Uygulama oluşturmak için Lovable üzerindeki ilk komut.

Açıklamamın oldukça kısa olduğuna dikkat edin. İlk mesajda tüm işlevleri özetleyen çok ayrıntılı bir açıklama vermeyi de denedim ancak bu pek iyi çalışmadı; çünkü bu işlevlerin çoğu bir arka uç gerektiriyor. Proje ilk oluşturulduğunda Supabase’e otomatik olarak bağlanmıyor, bu yüzden komut başarısız oluyor.

Bu komutla elde ettiğimiz sonuç şu oldu:

Lovable üzerindeki ilk komuttan sonra uygulamanın durumu

Bu aşamada uygulama oldukça işlevseldi. Yapılacaklar listesinde öğe oluşturabiliyor, silebiliyor ve tamamlandı olarak işaretleyebiliyordu. Şaşırtıcı bir şekilde, uygulama yenilense bile veriler kalıcıydı!

Lovable bunu, verileri yerel bir tarayıcı veritabanında depolayan yerel depolamayı kullanarak yaptı. Bu yöntemin internet bağlantısı gerektirmemek gibi bir avantajı vardır, ancak verileri cihazlar arasında paylaşmamak gibi bir dezavantajı da vardır.

Şimdi projemizi Supabase’e bağlayarak bunu bir arka uç veritabanıyla nasıl değiştireceğimize bakalım.

Supabase’e bağlanma

Supabase, uygulamalarımız için bir arka uç altyapısı sağlayan açık kaynaklı bir platformdur. Veritabanı depolama, kimlik doğrulama ve API’ler dahil bir dizi hizmet sunarak uygulama verilerini yönetmek için kapsamlı bir çözüm sağlar. 

Örneğin bir yapılacaklar listesi uygulaması geliştirirken, uygulamamızın verilerinin birden fazla cihaz ve kullanıcı arasında kalıcı olmasını istiyorsak Supabase kritik hâle gelir. Yalnızca tek bir cihazın tarayıcısında veri saklayan yerel depolamanın aksine, Supabase verileri bulutta saklamamıza olanak tanır. Bu da kullanıcılarımızın yapılacaklar listelerine herhangi bir cihazdan erişebilmesi ve güncellemeleri gerçek zamanlı görebilmesi anlamına gelir.

Ayrıca Supabase’in kimlik doğrulama hizmetleri, kullanıcı kayıt ve girişlerini yönetmemize yardımcı olarak her kullanıcının verilerinin güvenli ve gizli kalmasını sağlar. Uygulamamızı Supabase’e bağlayarak uygulamamızın tüm potansiyelini açığa çıkarırız.

Uygulamalarımızı geliştirirken Supabase kullanmanın avantajlarından biri açık kaynaklı olmasıdır. Açık kaynak olması, belirli bir bulut sağlayıcısına bağımlı kalmamamızı sağlayarak uygulamamızın arka ucunu yönetmede daha fazla esneklik sunar. Kolaylık için Supabase’in barındırılan hizmetlerini kullanma seçeneğimiz olsa da, istersek Docker kullanarak uygulamalarımızı kendi sunucularımızda da barındırma özgürlüğüne sahibiz. Bu esneklik, ister maliyet verimliliği, ister performans, ister uyumluluk gereklilikleri açısından olsun, ihtiyaçlarımıza en uygun barındırma ortamını seçmemize olanak tanır.

Projemizi Supabase’e bağlamak için şu adımları izliyoruz:

1. Sağ üst köşedeki Supabase düğmesine tıklayın.

Bir Lovable uygulaması için Supabase bağlantısını başlatma

2. Supabase’e kaydolmamızı isteyen bir açılır pencere belirecek.

Supabase kaydı

3. Kaydolduktan sonra Lovable’ın hesabımıza erişmesini yetkilendirmek için Supabase düğmesine tekrar tıklıyoruz. Bizden bir organizasyon oluşturmamız istenecek.

Bir Supabase organizasyonu oluşturma

4. Organizasyon oluşturulduktan sonra onu seçip Lovable’ın bu organizasyon üzerinden Supabase hesabımıza erişmesini yetkilendirebiliriz.

Supabase organizasyonunu yetkilendirme

5. Supabase düğmesine tekrar tıklayın ve bir proje oluşturun. Bu, bizi projeyi yapılandırabileceğimiz Supabase web sitesine yönlendirecek.

6. Son olarak Lovable web sitesine dönüp Supabase düğmesine son bir kez tıklayın. Ardından az önce oluşturduğumuz projeyi seçin. Bu, yapay zekânın o projeye bağlanacak şekilde kodu güncellemesini tetikleyecek.

İşte bu kadar, artık uygulamamızın bir arka ucu var!

Yukarıda belirtildiği gibi, arka uç gerektiren herhangi bir işlevi uygulamasını istemeden önce projeyi Supabase’e bağlamak daha iyidir; çünkü bağlantı kurulmadan kod yazmayı pek sevmiyor gibi görünüyor. Bunun mühendislerin çalışma şekli olmadığını unutmayın—frontend mühendisleri arka uç uygulanmadan da ön yüz kodunu yazabilir.

Kullanıcı kimlik doğrulaması ekleme

Uygulamamız bir Supabase projesine bağlandığına göre artık Lovable’dan kullanıcı kimlik doğrulaması eklemesini isteyebiliriz.

Lovable uygulamamız için kimlik doğrulama komutu

Önce, yapay zekâ uygulamamız için veritabanı tablolarını oluşturacak. Bu işlem bittiğinde, sohbet penceresinde "Apply Changes" düğmesine tıklayarak bunu manuel olarak onaylamamız gerekir.

Her zaman yapay zekânın değişikliklerini kabul etmemiz istenmez, ancak bazı durumlarda bu gereklidir; çünkü bazı değişiklikler (veritabanı güncellemeleri gibi) yayınlamadan bile üretimdeki uygulamayı etkileyebilir.

Lovable’da değişiklikleri manuel olarak kabul etme

Veritabanı güncellendikten sonra, kullanıcıları kimlik doğrulamak ve yapılacaklar güncellemelerini veritabanına kaydetmek için kodu güncellemeye başlayacaktır.

Ancak bu kez "Build unsuccessful" şeklinde bir hatayla karşılaşıyor. Böyle bir durumda hatayı görebilir ve sorunu otomatik olarak düzeltmeyi denemek için üstteki "Try to fix it" düğmesini kullanabiliriz.

Lovable’da başarısız derleme hatası

Bu durumda düğmeye tıklamak sorunu çözdü ve uygulama artık kullanıcı kimlik doğrulaması ve veritabanı veri depolamasıyla tamamen işlevsel; dolayısıyla uygulamayı birden fazla cihazda kullansak bile yapılacaklar listemize erişebiliyoruz.

Uygulamayı yayınlama

Uygulamayı yayınlamak için sağ üst köşedeki "Publish" düğmesini kullanabiliriz.

Lovable üzerinden uygulamayı yayınlama

Yayınlandıktan sonra, menünün alt kısmında verilen bağlantıyı kullanarak erişebiliriz.

Uygulamaya erişim.

Bu bağlantı herkese açık olup, herkesin uygulamayı kullanmasına olanak tanır. Ayrıca bir özel alan adımız varsa onu da yapılandırabiliriz.

Uygulamada değişiklik yaptığımızda “Redeploy” düğmesine tıklamamız gerektiğini unutmayın. Aksi takdirde bu değişiklikler yalnızca Lovable arayüzünde görünür, uygulama URL’si üzerinden uygulamayı kullanan kullanıcılar tarafından görülmez.

Lovable’da Gelişmiş Yetenekler

GitHub’a bağlanma

Lovable kodda doğrudan değişiklik yapmamıza izin vermez; yalnızca kodu ve yaptığı değişiklikleri görmemize olanak tanır.

Kodu değiştirebilmek için projeyi, sürüm kontrolü kullanarak kod projelerinin barındırılması ve üzerinde iş birliği yapılması için yaygın şekilde kullanılan bir platform olan GitHub’a bağlamamız gerekir. Bu, birden fazla kullanıcının katkıda bulunmasını, gözden geçirmesini ve değişiklikleri verimli şekilde yönetmesini sağlar.

GitHub’a bağlanmak için:

1. GitHub hesabınıza giriş yapın ve ücretsiz bir organizasyon oluşturun.

2. Lovable’da, sağ üst köşedeki "Edit Code" düğmesine tıklayın.

Lovable için GitHub bağlantısı

3. Ardından "Connect to GitHub" seçeneğine tıklayın.

4. İlk adımda oluşturduğumuz organizasyonu seçin.

GitHub bağlandıktan sonra kod, GitHub deposuyla senkronize kalacaktır. Bu, VSCode gibi araçları kullanarak projede yerel olarak çalışabileceğimiz anlamına gelir. Değişiklikler depoya itildikten sonra Lovable’ın bu değişiklikleri çekmesinin biraz zaman aldığını unutmayın.

Uygulamanın kendisinin otomatik olarak yeniden dağıtılmadığını unutmayın. Değişiklikleri uygulamada görmek için yeniden yayınlamamız gerekir.

Bulut fonksiyonları

Şimdiye kadar öğrendiklerimiz, çevrimiçi bir veritabanı ve bu verileri oluşturmak, okumak, güncellemek ve silmek için bir ön yüz kullanıcı arayüzünü sürdürebilen, genellikle CRUD uygulaması olarak bilinen bir uygulama yapmamıza olanak tanıyor.

Bulut fonksiyonları, fiziksel sunucuları yönetme ihtiyacı olmadan uygulamalarımıza özel mantık ve karmaşık işlemler eklemek için güçlü bir yol sunar. Veritabanı değişiklikleri, HTTP istekleri veya diğer tetikleyiciler gibi olaylara yanıt olarak arka uç kodu çalıştırmamıza olanak tanırlar. Bu, e-posta bildirimleri göndermek, verileri işlemek veya planlanmış görevler yürütmek gibi işler için özellikle yararlı olabilir.

Bulut fonksiyonlarını kullanarak karmaşık işlevleri verimli şekilde ele alma ve ihtiyaç duyulduğunda ölçeklendirme esnekliği kazanır, bunu yaparken de kesintisiz ve duyarlı bir kullanıcı deneyimi sağlarız. Özetle, uygulamalarımızın yeteneklerini basit veri yönetiminin ötesine taşıyarak onları daha dinamik ve kullanışlı kılarlar.

Bir yapılacaklar listesi uygulamasında bulut fonksiyonu kullanmanın harika bir örneği, yaklaşan görevler için e-posta hatırlatıcıları göndermektir. Diyelim ki kullanıcıları yakında vadesi dolacak görevler konusunda uyarmak istiyoruz. Veritabanında yaklaşan son tarihleri olan görevleri kontrol eden ve kullanıcıya otomatik olarak e-posta hatırlatıcıları gönderen bir bulut fonksiyonu yazabiliriz.

Lovable’dan bunu bizim için uygulamasını isteyebiliriz:

Lovable’da bir bulut fonksiyonu uygulanmasını isteme

Bazı fonksiyonlar, çalışmak için bir API anahtarı gerektiren haricî API’lere erişim ister. Bu durumda uygulanan çözüm Resend API’sini kullanıyor; bu yüzden Lovable, hizmet kurulumunu tamamlamak için API anahtarını istedi. 

Stripe ile abonelik ekleme

Kullanıcılar abone olamıyorsa bir uygulama yapmanın pek anlamı yok. Lovable’dan uygulamaya Stripe kullanarak abonelikler eklemesini isteyelim.

Aşağıdaki komutu kullanabiliriz:

Lovable’da Stripe aboneliklerini uygulama

Önceki örneğe benzer şekilde benden Stripe anahtarımı sağlamamı istedi. Bu anahtarı Stripe hesabımızdan alabiliriz.

Son olarak, abonelik fiyatı kimliğinin eksik olduğunu söyledi. Bunun için tekrar Stripe’a dönüp bir abonelik ürünü oluşturabilir ve fiyat kimliğini kopyalayabiliriz. Lovable, API anahtarında olduğu gibi fiyat kimliğini istemek için bir düğme sunmadığından, bunu sohbette sağlayabiliriz:

Fiyat kimliğini Lovable sohbeti üzerinden sağlama

Uygulamayı tamamlamak için, yalnızca abone olan kullanıcıların yapılacaklar oluşturmasına izin vermesini ve uygulamanın güncellenmiş sürümünü yayınlamasını isteyebiliriz.

Her şey ilk denemede çalıştı!

Stripe kullanarak abonelikli yapılacaklar uygulaması.

Yükleyebileceğimiz bir mobil uygulama yapma

Lovable’ın oluşturduğu uygulama, kutudan çıktığı hâliyle bir gelişmiş web uygulaması (PWA) değildir. Yalnızca bir web sitesidir ve bu, onu bir mobil cihaza kurup bir web sitesi yerine sanki gerçek bir telefon uygulamasıymış gibi kullanamayacağımız anlamına gelir.

Ancak bunu tek bir komutla düzeltmek çok kolay:

Uygulamayı PWA’ya dönüştürme

Bu değişikliklerle, uygulama bağlantısını mobil cihazımızda açarsak onu yükleyebilir ve sanki yerel olarak kurulu bir uygulamaymış gibi kullanabiliriz.

Lovable’dan bir PWA yükleme 

Lovable’ın Sınırlamaları

Lovable’ın potansiyeline rağmen, sınırlamalarını dikkate almak önemlidir.

Güvenlik endişeleri

Lovable, kod yazmadan uygulama oluşturmak için çekici bir yol sunsa da, özellikle kodlama deneyimi olmayanlar için uygulama güvenliği konusunda soru işaretleri doğurur. Kullanıcılar, uygulamalarının veritabanında yetkisiz erişimi önlemek için gerekli güvenlik önlemlerinin bulunduğundan nasıl emin olabilir; örneğin bir kullanıcının başka bir kullanıcının listesine görev eklemesini engellemek gibi?

Uygulama oluşturma sürecindeki komutlarda bu kritik nokta geçmedi; bu da potansiyel açıkların incelenmeden kalmasına yol açabilir. Teknik geçmişi olmayan kullanıcılar bu güvenlik endişelerini değerlendirmekte ve yönetmekte zorlanabilir.

Lovable gerçekten geliştiriciler için daha hızlı mı?

Zaten kendi araç ve kod kütüphanelerine sahip geliştiriciler için soru şu hâle geliyor: Lovable gerçekten daha mı hızlı?

Birçok geliştirici, ödemeler, kimlik doğrulama ve CRUD işlemleri gibi özellikleri kapsayan, güvendikleri ve aşina oldukları dahili bir kod parçacıkları ve modül kütüphanesi oluşturarak becerilerini geliştirmiştir. Bunlar, kendi tarzlarına ve teknoloji tercihlerine göre uyarlanmıştır.

Lovable, kullanılan teknolojiler üzerinde aynı düzeyde kontrol sunmayabilir; bu da belirli sistem ve iş akışlarına alışkın olanlar için bir dezavantaj olabilir. Platform, hızlı prototipleme için kolay bir yol sunsa da, geliştiriciler mevcut araç ve yöntemlerine bağlı kalmayı, özellikle sundukları sorunsuz entegrasyon ve aşinalık dikkate alındığında, daha verimli bulabilir.

Programcı olmayanlar için hata ayıklama

Lovable, kod yazmadan uygulama oluşturmaya büyük kolaylık getirse de, otomatik çözümlerin yetersiz kaldığı ve manuel müdahalenin gerektiği durumlarda programcı olmayanların nasıl hareket edeceğine dair önemli bir endişe vardır. Platform, kendi kendine çözemediği bir sorunla karşılaştığında ne olur? Hedef kullanıcılar kodlama becerisine sahip değilken bu darboğazları kim aşar?

Koda dalma imkânı olmadan, kodlama bilmeyen bir kişi sıkışmış hissedebilir ve sonraki adımın ne olacağından emin olmayabilir. Bu bağımlılık, projelerin durmasına ve hayal kırıklığına yol açabilir; potansiyel olarak bir programcı tutmayı veya harici yardım almayı gerektirebilir ki bu da ek maliyet ve gecikmeler anlamına gelir.

Sonuç

Sonuç olarak, Lovable uygulama geliştirmeyi erişilebilir kılarken, programcı olmayanlar için başarısı büyük ölçüde, basit komutların ötesinde işler karmaşıklaştığında kullanıcılara nasıl destek olduğuna bağlıdır.

Lovable’ın gerçekten herkese uygulama geliştirmeyi erişilebilir kılma vaadini yerine getirdiğine inanıyorum. Günde yalnızca beş komut gönderme sınırlamasına rağmen, yine de işlevsel bir uygulamayı etkili bir şekilde oluşturabiliyoruz.

Platform, daha karmaşık iş akışlarını yönetme konusunda güçlü bir yetenek sergiliyor ve ayrıntılı uygulama özelleştirmeleri yapmamıza izin veriyor. Bu da, sınırlı etkileşimler içinde bile yaratıcı uygulama fikirlerini çalışan uygulamalara dönüştürebileceğimiz anlamına geliyor.

François Aubry

Yazar

François Aubry

CheapGPT’te full-stack mühendisi ve kurucuyum. Öğretmek her zaman tutkum oldu. Öğrencilik yıllarımdan itibaren diğer öğrencilere ders verme ve yardımcı olma fırsatlarını hevesle aradım. Bu tutku beni doktora yapmaya yönlendirdi; bu süreçte akademik çalışmalarımı desteklemek için araştırma görevlisi olarak da görev aldım. O yıllarda, geleneksel sınıf ortamında bağlar kurmaktan ve öğrenmeyi kolaylaştırmaktan büyük bir tatmin duydum. Ancak çevrim içi öğrenme platformlarının ortaya çıkmasıyla birlikte dijital eğitimin dönüştürücü potansiyelini fark ettim. Nitekim üniversitemizde bu tür bir platformun geliştirilmesinde aktif rol aldım. Geleneksel öğretim ilkelerini yenilikçi dijital yöntemlerle bütünleştirmeye derinden bağlıyım. Tutkum, yalnızca ilgi çekici ve bilgilendirici olmakla kalmayan, aynı zamanda bu dijital çağdaki öğrenenler için erişilebilir kurslar tasarlamaktır.

Konular

İlgili