Bu Makaleyi Bir Yapay Zeka Yazdı!
Yapay zeka tekonolojisi son zamanlarda adını çokça duyurmayı başardı ve gün geçtikçe daha yeni özelliklerle beraber kendini geliştiriyor. Bu makalede bir yapay zeka modelinin makaleyi yazmasını ele alacağım ve makalede yapay zeka modelinin yazdığı makaleyi yorumluyor olacağım. Yazmasını istediğim belirli bir konu seçerek değil, makalede yazacağı konuyu da modelin seçmesini sağlayacağım. Bu makalede kullanacağım yapay zeka modeli ChatGPT 4o olacak. (Örnekte oluşturduğu kodları “Ekler” kısmında sizlerle paylaşıyor olacağım.)
Makale Seçimi
Benim de yorum yapabilmem için kendi mesleğim olan “Android” hakkında seçmesini istedim.
ChatGPT burada yeni ve çok gözde bir konu olan Compose’u seçti. Compose üzerine birçok platformda birçok makale bulunulabilir, hala üzerinde çeşitli başlıklarla detaylı anlatımlar yapılan bir konu. Geniş bir kitleye hitap etmek için güzel seçilmiş bir konu olduğunu düşünüyorum.
Makalemiz için şu şekilde bir taslak çıkardı, şimdi bu başlıkları tek tek ona yazdırıp örnekler vermesini isteyeceğim.
Makalenin Yazımı
Modelimiz, Giriş başlığı için kullanılabilir doğru ve kısa bir özet çıkardı. Kısa bir blog yazısı için gayet uygun.
Jetpack Compose’a Giriş
Bu sefer gerçekten çok basit bir fonksiyon oluşturarak bize bir örnek verdi ama bu makaleyi okuyacak kullanıcıların Android bildiğini varsayabileceğimiz için bu tarz yazılmış fonksiyonlar kullanıcılar için çok basit gelebilir, bu yüzden yazılan kodu biraz zorlaştırmayı deneyebiliriz.
Bu sefer “Compose” başlığının altında olan “Column”, “Modifier” vs. kullanarak fonksiyonumuzu daha komplike hale getirdi. Compose öğrenmeye başlayan okurlar için bu fonksiyon daha uygun diye düşünüyorum.
Temel Bileşenler ve Layout
Bu örnek fonksiyonun ve açıklamanın da okurlar için uygun olduğunu düşünüyorum. Önceki prompt’umda olduğu gibi fonksiyon zorluğunu aynı derece tutarak oluşturmaya devam ediyor. Önceki örnekte kullandığı Column’u ve diğer kullandığı fonksiyonları da kısaca anlatarak üzerinden geçti.
Jetpack Compose ile Modern UI Tasarımı
Yine temel bir fonksiyon oluşturdu ve “Material Design” kütüphanesinin kullanımından bahsetti. Tabii ki tamamen “Compose” konusunu öğrenebilmek için yeteri düzeyde olmayan bir anlatım sunuyor bizlere ama konu başlıklarının temel prensiplerini anlamak için yeterli.
Sık Karşılaşılan Sorunlar ve Çözümleri
Bu verdiği örnekte sorunu anlattı lakin sorunun çözümünde bahsettiği remember ve rememberSaveable’den bahsetmemiş.
! Küçük bir dipnot:
remember: Compose’da bileşenin aldığı değeri korumak için kullanılır ama uygulama kill edilirse veya cihaz döndürülürse değeri koruyamaz.
rememberSaveable: Compose’da bileşenin aldığı değeri remember gibi korur ama burada uygulama kill edilse de cihaz döndürülse de değeri korumaya devam eder.
Sonuç
ChatGPT’nin “Sonuç” başlığı bu şekilde, benim sonuç başlığım ise;
Sonuç
Yapay zeka modelimiz gerçekten cümle kurarken yanlış bir cümle kurmadı ve açıklamalarıyla beraber verdiği kod örnekleri güzeldi ama bir konuyu baştan sona öğrenmek için tek başına kullanılabilir bir kaynak olduğunu düşünmüyorum. Zaten bu tarz geniş içerikli bir konuyu iyice kavramak için genel olarak tek bir kaynağın yeterli olmadığını düşünüyorum, evet bir aracı olarak kullanılabilir (ara kaynak gibi) ama yanında google’ın kendi dökümanları, ek video içerikler ve en önemlisi kendi kendimize kodu yazıp ayağa kaldırmak çok daha doğru ve pekiştirici olacaktır.
Herkese iyi günler dilerim!
Ekler
@Composable
fun Greeting() {
Text(text = "Merhaba Dünya")
}
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting()
}
}
}
@Composable
fun GreetingList(names: List<String>) {
Column(modifier = Modifier.padding(16.dp)) {
for (name in names) {
Text(text = "Merhaba, $name!", style = MaterialTheme.typography.h6)
Spacer(modifier = Modifier.height(8.dp))
}
Button(onClick = { /* Handle click */ }) {
Text("Daha Fazla")
}
}
}
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val names = listOf("Vefa", "Can", "Beytorun")
GreetingList(names = names)
}
}
}
@Composable
fun UserProfile(name: String, age: Int) {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
) {
Text(text = "İsim: $name", style = MaterialTheme.typography.h6)
Text(text = "Yaş: $age", style = MaterialTheme.typography.body1)
Row(
modifier = Modifier
.fillMaxWidth()
.padding(top = 8.dp)
) {
Button(onClick = { /* Handle follow */ }) {
Text("Takip Et")
}
Spacer(modifier = Modifier.width(8.dp))
Button(onClick = { /* Handle message */ }) {
Text("Mesaj Gönder")
}
}
}
}
@Composable
fun ThemedButton() {
MaterialTheme {
Button(
onClick = { /* Handle click */ },
colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.primary)
) {
Text(
text = "Tıklayın",
color = MaterialTheme.colors.onPrimary,
style = MaterialTheme.typography.button
)
}
}
}
@Composable
fun OptimizedComponent() {
val count by rememberSaveable { mutableStateOf(0) }
Button(onClick = { count++ }) {
Text(text = "Tıklama Sayısı: $count")
}
}