# Google AI Studio 2026: Gemini Geliştirici Platformu
Yapay zeka uygulamalari geliştirmek istiyorsan ve hangi platformla baslayacagina karar veremediysen, Google AI Studio tam sana göre bir başlangıç noktasi. Gemini 2.5 Pro ve Flash modelleriyle prompt tasarimi, function calling, model tuning ve güvenlik ayarlarina kadar her seyi tek bir arayüzden yonetebiliyorsun. API key olusturmadan production-grade entegrasyona, maliyet optimizasyonundan mobil SDK kurulumuna kadar tum adımlari adım adım birlikte kesfedecegiz. Hazirsan başlayalım.
💡 Pro Tip: Google AI Studio ucretsiz katmani oldukca comert. Gemini Flash ile günlük 1500 istek yapabiliyorsun — prototipleme ve MVP geliştirme için harika bir başlangıç noktasi.
İçindekiler
- Google AI Studio Nedir?
- API Key ve Proje Kurulumu
- Gemini Model Ailesi 2026
- Prompt Design: Etkili Sorgular Oluşturma
- Function Calling ile Tool Kullanımi
- Model Tuning ve Fine-tuning
- Safety Settings ve İçerik Filtreleme
- Fiyatlandirma ve Maliyet Optimizasyonu
- Mobil Uygulamalarda Gemini Entegrasyonu
- Sonuç ve Öneriler
1. Google AI Studio Nedir?
Google AI Studio, eskiden "MakerSuite" olarak bilinen platformun evrilmis halidir. 2026'da tamamen yeniden tasarlanan arayuzuyle artik sadece prompt denemek için değil, uretim seviyesinde AI uygulamalari geliştirmek için kullanilabiliyor.
Platform Yetenekleri
Özellik | Açıklama | Ucretsiz Limit |
|---|---|---|
**Chat Mode** | Çok turlu konusma oluşturma | Günlük 1500 istek (Flash) |
**Structured Prompt** | Örnek tabanli prompt şablonlari | Sinirsiz tasarim |
**Function Calling** | Harici API ve arac entegrasyonu | Tum modellerde aktif |
**Model Tuning** | Kendi verilerinle model ince ayar | 5 GB/ay ucretsiz |
**Code Execution** | Sandbox içinde Python çalıştırma | 100 çalıştırma/gun |
**Grounding** | Google Search ile gerçek zamanli veri | 500 istek/gun |
Neden Google AI Studio?
Piyasada OpenAI Playground, Anthropic Console ve diger araclar varken neden Google AI Studio secmelisin?
- Ucretsiz katman çoğu rakipten genis: Flash modeli ile günlük 1500 istek, production oncesi prototipleme için yeterli
- Multimodal nativ destek: Video, ses, görsel ve PDF'yi tek bir API çağrısinda isleyebiliyorsun
- Google ekosistemi entegrasyonu: Firebase, Vertex AI, Cloud Functions ile seamless geçis
- 2M token context window: Gemini 2.5 Pro ile tek seferde dev dokumanlari isleyebilirsin
Daha önce Firebase Advanced Patterns yazimda Firebase'in AI entegrasyonlarindan bahsetmistim. Google AI Studio bu vizyonun merkezinde duruyor.
2. API Key ve Proje Kurulumu
Google AI Studio ile çalışmaya başlamanın ilk adimi API key oluşturmak. Süreç oldukca basit ama bazi dikkat edilmesi gereken noktalar var.
Adım Adım Kurulum
bash
1# 1. Google AI Studio'ya git: https://aistudio.google.com2# 2. Google hesabinla giriş yap3# 3. Sol menuden "Get API Key" tikla4# 4. "Create API Key in new project" seç5 6# API key'i environment variable olarak sakla7export GEMINI_API_KEY="AIzaSy..."8 9# Test et10curl -s "https://generativelanguage.googleapis.com/v1beta/models?key=${GEMINI_API_KEY}" | jq '.models[].name'Node.js / TypeScript Kurulumu
typescript
1// npm install @google/generative-ai2import { GoogleGenerativeAI } from '@google/generative-ai';3 4const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);5 6// Model seç7const model = genAI.getGenerativeModel({8 model: 'gemini-2.5-pro-preview',9 generationConfig: {10 temperature: 0.7,11 topP: 0.95,12 topK: 40,13 maxOutputTokens: 8192,14 },15});16 17// Basit bir sorgu18async function generateResponse(prompt: string): Promise<string> {19 const result = await model.generateContent(prompt);20 const response = result.response;21 return response.text();22}23 24// Kullanım25const answer = await generateResponse(26 'Swift ve Kotlin arasindaki temel farklar nelerdir?'27);28console.log(answer);Swift / iOS Kurulumu
swift
1// Swift Package Manager ile ekle:2// https://github.com/google/generative-ai-swift3 4import GoogleGenerativeAI5 6let model = GenerativeModel(7 name: "gemini-2.5-flash",8 apiKey: APIKey.default9)10 11func generateContent() async throws -> String {12 let response = try await model.generateContent("Merhaba Gemini!")13 return response.text ?? "Yanit alinamadi"14}Güvenlik Uyarıları
API key yönetimi konusunda iOS Security Best Practices yazimda detayli bahsetmistim. Gemini API key için de ayni prensipler gecerli:
- Asla client-side koda gomme:: API key'i backend proxy uzerinden kullan
- Environment variable kullan:: `.env` dosyasinda sakla, git'e commit etme
- Key restriction uygula:: Google Cloud Console'dan IP veya referrer kisitlamasi ekle
- Rotasyon plani oluştur:: Her 90 günde key'i yenile
3. Gemini Model Ailesi 2026
2026 itibariyle Gemini model ailesi oldukca genisledi. Her modelin kendine ozgu gucleri ve kullanım alanlari var.
Model Karşılaştırmasi
Model | Context | Hız | Zeka | Fiyat (1M input) | En Iyi Kullanım |
|---|---|---|---|---|---|
**Gemini 2.5 Pro** | 2M token | Orta | Çok yuksek | $1.25 | Karmaşık akil yurutme, kodlama |
**Gemini 2.5 Flash** | 1M token | Çok hızlı | Yuksek | $0.075 | Genel amac, yuksek hacim |
**Gemini 2.0 Flash** | 1M token | Hızlı | Iyi | $0.04 | Maliyet-hassas işler |
**Gemini 2.5 Flash Lite** | 128K token | Ultra hızlı | Orta | $0.02 | Basit siniflandirma, özetleme |
Model Secim Rehberi
typescript
1// Goreve göre model secimi2function selectModel(task: string): string {3 switch (task) {4 case 'code-generation':5 case 'complex-reasoning':6 case 'long-document-analysis':7 return 'gemini-2.5-pro-preview';8 9 case 'chat':10 case 'summarization':11 case 'general-qa':12 return 'gemini-2.5-flash';13 14 case 'classification':15 case 'entity-extraction':16 case 'simple-generation':17 return 'gemini-2.5-flash-lite';18 19 default:20 return 'gemini-2.5-flash'; // Varsayılan: denge modeli21 }22}Thinking Mode (Derin Düşünme)
Gemini 2.5 Pro ve Flash'in en dikkat cekici özelliklerinden biri Thinking Mode. Model, cevap vermeden önce adım adım düşünme surecini gösteriyor — tum bu süreç token tuketimine dahil.
💡 Pro Tip: Thinking budget'i kontrol edebiliyorsun. Basit sorular için thinking'i kapatarak token maliyetini %40'a kadar dusur. Karmaşık problemlerde ise açık birak — doğru cevap orani belirgin şekilde artiyor.
4. Prompt Design: Etkili Sorgular Oluşturma
Prompt design, Gemini'den en iyi sonuçu almanin anahtari. Google AI Studio'nun Structured Prompt ozelligi bu konuda çok isini kolaylastirir.
System Instruction Yapısı
typescript
1const model = genAI.getGenerativeModel({2 model: 'gemini-2.5-flash',3 systemInstruction: {4 parts: [{5 text: `Sen deneyimli bir iOS geliştiricisisin.6 Kullanıcılara Swift ve SwiftUI konularinda yardimci oluyorsun.7 8 Kurallar:9 - Her zaman Turkce cevap ver10 - Kod örnekleri Swift 6 uyumlu olsun11 - Aciklayici ve öğretici bir ton kullan12 - Best practice'leri vurgula13 - Yanlış bilgi verme, emin degilsen belirt`14 }]15 }16});Few-Shot Prompting
typescript
1const prompt = `2Aşağıdaki örneklere bakarak verilen kodu refactor et:3 4Örnek 1:5Input: let x = ["a","b","c"]; for(let i=0;i<x.length;i++){console.log(x[i])}6Output: const items = ["a", "b", "c"];7items.forEach(item => console.log(item));8 9Örnek 2:10Input: var result = ""; for(var i=0;i<arr.length;i++){result+=arr[i]+","}11Output: const result = arr.join(",");12 13Şimdi bu kodu refactor et:14Input: let sum=0; for(let i=0;i<numbers.length;i++){sum=sum+numbers[i]}15`;16 17const result = await model.generateContent(prompt);Chain of Thought Prompting
Karmaşık problemlerde modeli adım adım dusunmeye yonlendirmek sonuçları dramatik şekilde iyilestirir. Eger daha önce Swift Async/Await yazisini okudunysan, concurrency problemlerinin ne kadar karmaşık olabilecegini biliyorsundur — bu tip konularda CoT birebirdir.
5. Function Calling ile Tool Kullanımi
Function calling, Gemini'nin en güçlü özelliklerinden biri. Model senin tanimladigin fonksiyonlari cagirabiliyor ve gerçek dunya verileriyle calisabiliyor.
Function Tanımlama
typescript
1import { GoogleGenerativeAI, FunctionDeclarationSchemaType } from '@google/generative-ai';2 3const tools = [{4 functionDeclarations: [{5 name: 'getWeather',6 description: 'Belirtilen sehrin hava durumu bilgisini getirir',7 parameters: {8 type: FunctionDeclarationSchemaType.OBJECT,9 properties: {10 city: {11 type: FunctionDeclarationSchemaType.STRING,12 description: 'Sehir adi (örnek: Istanbul)'13 },14 unit: {15 type: FunctionDeclarationSchemaType.STRING,16 enum: ['celsius', 'fahrenheit'],17 description: 'Sicaklik birimi'18 }19 },20 required: ['city']21 }22 }, {23 name: 'searchProducts',24 description: 'Ürün katalogundan arama yapar',25 parameters: {26 type: FunctionDeclarationSchemaType.OBJECT,27 properties: {28 query: {29 type: FunctionDeclarationSchemaType.STRING,30 description: 'Arama sorgusu'31 },32 maxPrice: {33 type: FunctionDeclarationSchemaType.NUMBER,34 description: 'Maksimum fiyat (TL)'35 }36 },37 required: ['query']38 }39 }]40}];41 42const model = genAI.getGenerativeModel({43 model: 'gemini-2.5-flash',44 tools45});Function Call Dongusu
typescript
1async function chatWithTools(userMessage: string): Promise<string> {2 const chat = model.startChat();3 let response = await chat.sendMessage(userMessage);4 5 // Model function call istediyse6 while (response.response.candidates?.[0]?.content?.parts?.some(7 part => 'functionCall' in part8 )) {9 const functionCalls = response.response.candidates[0].content.parts10 .filter(part => 'functionCall' in part)11 .map(part => part.functionCall!);12 13 const functionResponses = await Promise.all(14 functionCalls.map(async (call) => {15 const result = await executeTool(call.name, call.args);16 return {17 functionResponse: {18 name: call.name,19 response: { result }20 }21 };22 })23 );24 25 response = await chat.sendMessage(functionResponses);26 }27 28 return response.response.text();29}30 31// Tool executor32async function executeTool(name: string, args: Record<string, unknown>) {33 switch (name) {34 case 'getWeather':35 return await fetchWeatherAPI(args.city as string);36 case 'searchProducts':37 return await searchProductDB(args.query as string, args.maxPrice as number);38 default:39 throw new Error(`Bilinmeyen fonksiyon: ${name}`);40 }41}GraphQL Mobile Development yazimda API entegrasyonlarindan bahsetmistim. Function calling ile Gemini'yi kendi GraphQL API'lerine bağlamak muhteşem bir deneyim sunuyor.
6. Model Tuning ve Fine-tuning
Google AI Studio uzerinden Gemini modellerini kendi verilerin ile fine-tune edebilirsin. Bu ozellikle domain-specific bilgi gerektiren uygulamalarda çok değerli.
Tuning Veri Formati
json
1{2 "training_data": [3 {4 "input": "SwiftUI'da bir liste nasil oluşturulur?",5 "output": "SwiftUI'da liste oluşturmak için List view'i kullanılır. ForEach ile dinamik içerik render edilir ve .listStyle() modifier ile görünüm ozellestirilebilir."6 },7 {8 "input": "Core Data ile SwiftData arasindaki fark nedir?",9 "output": "SwiftData, Core Data'nin modern Swift-native alternatifidir. @Model macro'su ile tanımlama yapılır, CloudKit entegrasyonu dahilidir ve SwiftUI ile dogal olarak çalışır."10 }11 ]12}Tuning Best Practices
Parametre | Önerilen Değer | Açıklama |
|---|---|---|
**Training örnekleri** | 100-500 | Minimum 20, ideal 100+ |
**Epoch sayısı** | 3-5 | Overfitting riskine dikkat |
**Learning rate** | Otomatik | Google'in optimizer'i genelde iyi |
**Validation split** | %20 | Performans olcumu için ayir |
7. Safety Settings ve İçerik Filtreleme
Gemini API varsayılan olarak içerik filtreleme uygular. Production uygulamalarinda bu ayarlari senaryona göre yapilandirman gerekir.
typescript
1import { HarmCategory, HarmBlockThreshold } from '@google/generative-ai';2 3const safetySettings = [4 {5 category: HarmCategory.HARM_CATEGORY_HARASSMENT,6 threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,7 },8 {9 category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,10 threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,11 },12 {13 category: HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,14 threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,15 },16 {17 category: HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,18 threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,19 },20];21 22const model = genAI.getGenerativeModel({23 model: 'gemini-2.5-flash',24 safetySettings,25});İçerik Filtreleme Seviyeleri
- BLOCK_NONE:: Hicbir şey filtreleme (sadece arastirma amacli)
- BLOCK_LOW_AND_ABOVE:: Dusuk risk dahil engelle (en kati)
- BLOCK_MEDIUM_AND_ABOVE:: Orta ve yuksek risk engelle (önerilen)
- BLOCK_ONLY_HIGH:: Sadece yuksek risk engelle (esnek)
8. Fiyatlandirma ve Maliyet Optimizasyonu
Gemini API fiyatlandirmasi token bazlidir. Akıllı kullanım ile maliyeti ciddi olcude dusurmen mumkun.
Maliyet Hesaplama Ornegi
typescript
1interface CostEstimate {2 inputTokens: number;3 outputTokens: number;4 model: string;5 totalCost: number;6}7 8function estimateCost(9 inputTokens: number,10 outputTokens: number,11 model: string12): CostEstimate {13 const pricing: Record<string, { input: number; output: number }> = {14 'gemini-2.5-pro': { input: 1.25, output: 10.0 }, // per 1M tokens15 'gemini-2.5-flash': { input: 0.075, output: 0.30 },16 'gemini-2.0-flash': { input: 0.04, output: 0.16 },17 };18 19 const rate = pricing[model] ?? pricing['gemini-2.5-flash'];20 const totalCost =21 (inputTokens / 1_000_000) * rate.input +22 (outputTokens / 1_000_000) * rate.output;23 24 return { inputTokens, outputTokens, model, totalCost };25}26 27// Örnek: 10K input + 2K output, Flash modeli28const estimate = estimateCost(10_000, 2_000, 'gemini-2.5-flash');29console.log(`Tahmini maliyet: $${estimate.totalCost.toFixed(6)}`);30// Tahmini maliyet: $0.001350Maliyet Dusurme Taktikleri
- Caching kullan: Ayni system instruction tekrar tekrar gönderme, context caching API'sini aktifle
- Model secimini optimize et: Basit işler için Flash Lite, karmaşık işler için Pro
- Prompt'u kisalt: Gereksiz örnek ve açıklamalar token harcar
- Batch API kullan: Yuksek hacimli işlemler için %50 indirimli batch endpoint
- Token sayimini izle:
countTokensAPI'si ile onceden maliyet tahmini yap
9. Mobil Uygulamalarda Gemini Entegrasyonu
Mobil uygulamalarda Gemini kullanımi için iki ana yaklaşım var: doğrudan SDK veya backend proxy.
iOS / Swift Entegrasyonu
CI/CD Pipeline yazimda mobil uygulama deploy sureclerinden bahsetmistim — Gemini entegrasyonu da ayni pipeline içinde yer alabilir.
swift
1import GoogleGenerativeAI2 3actor GeminiService {4 private let model: GenerativeModel5 6 init() {7 self.model = GenerativeModel(8 name: "gemini-2.5-flash",9 apiKey: Configuration.geminiAPIKey,10 generationConfig: GenerationConfig(11 temperature: 0.7,12 maxOutputTokens: 204813 )14 )15 }16 17 func chat(message: String) async throws -> String {18 let response = try await model.generateContent(message)19 guard let text = response.text else {20 throw GeminiError.emptyResponse21 }22 return text23 }24 25 func analyzeImage(_ image: UIImage, prompt: String) async throws -> String {26 let response = try await model.generateContent(prompt, image)27 return response.text ?? ""28 }29}Flutter Entegrasyonu
dart
1// pubspec.yaml: google_generative_ai: ^0.4.02import 'package:google_generative_ai/google_generative_ai.dart';3 4class GeminiRepository {5 late final GenerativeModel _model;6 7 GeminiRepository() {8 _model = GenerativeModel(9 model: 'gemini-2.5-flash',10 apiKey: const String.fromEnvironment('GEMINI_API_KEY'),11 );12 }13 14 Future<String> generate(String prompt) async {15 final content = [Content.text(prompt)];16 final response = await _model.generateContent(content);17 return response.text ?? '';18 }19}ALTIN İPUCU
Bu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Easter Egg
Gizli bir bilgi buldun!
Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?
Okuyucu Ödülü
Google AI Studio ile hızlı prototipleme için su workflow'u oneriyorum: (1) Studio arayuzunde prompt tasarla ve test et, (2) "Get Code" butonuyla TypeScript/Python/Swift kodu al, (3) Kendi projen için adapte et, (4) Function calling ile gerçek API'lere bağla, (5) Safety settings ile production'a hazirla. Bu 5 adım, fikir aşamasından çalışır MVP'ye 1 günde ulasmanı sağlar.
Sonuç ve Öneriler
Google AI Studio 2026, Gemini model ailesini kullanmanin en hızlı ve en verimli yolu. Ucretsiz katmani ile prototipleme, function calling ile gerçek dunya entegrasyonu ve model tuning ile domain uzmanlasmasi — hepsi tek bir platform uzerinde.
Onerilerim:
- Gemini Flash ile başla — hız/maliyet dengesi muhteşem
- Function calling'i mutlaka dene — uygulamana gerçek zamanli veri kazandiriyor
- Safety settings'i production oncesi mutlaka yapılandır
- Context caching ile maliyet optimizasyonu yap
- WebSocket Real-Time entegrasyonu ile streaming yanıtlar oluştur
Bir sonraki yazimda Gemini'nin multimodal yeteneklerini derinlemesine inceleyecegiz. Görsel, ses ve video analizi ile neler yapabilecegini goreceksin!

