# Kurulum

<div id="install"></div>

Üç komut sizi boş bir klasörden yönlendirme, ağ, temalar ve kod üretimi hazır olan çalışan bir Flutter uygulamasına götürür.

<div class="ny-doc-strip">
<span class="ny-doc-strip-label">Başlamadan önce</span>
<span class="ny-doc-strip-item">Flutter SDK yüklü</span>
<span class="ny-doc-strip-dot"></span>
<span class="ny-doc-strip-item">Dart 3</span>
<span class="ny-doc-strip-dot"></span>
<a href="/tr/docs/7.x/requirements">Tüm gereksinimler →</a>
</div>

## Kurulum

Bu komutları sırayla çalıştırın. Her birini yeniden çalıştırmak güvenlidir.

<div class="ny-doc-steps">
<div class="ny-doc-step">
<span class="ny-doc-step-num">1</span>
<h3 class="ny-doc-step-title">Nylo CLI&#039;ı global olarak yükleyin</h3>

`nylo` komutunu sisteminize ekler.

``` bash
dart pub global activate nylo_installer
```

</div>

<div class="ny-doc-step">
<span class="ny-doc-step-num">2</span>
<h3 class="ny-doc-step-title">Yeni bir proje oluşturun</h3>

Bu komut Nylo şablonunu klonlar, projeyi uygulama adınızla yapılandırır ve tüm bağımlılıkları otomatik olarak yükler.

``` bash
nylo new my_app
```

</div>

<div class="ny-doc-step">
<span class="ny-doc-step-num">3</span>
<h3 class="ny-doc-step-title">Metro alias&#039;ını ayarlayın</h3>

Bu, projeniz için `metro` komutunu yapılandırır ve tam `dart run` sözdizimi olmadan Metro CLI komutlarını kullanmanıza olanak tanır.

``` bash
cd my_app
nylo init
```

Ardından terminalinizi yeniden başlatın ya da `nylo init` tarafından yazdırılan `source` komutunu çalıştırın.

</div>
</div>

<div class="ny-doc-panel">
<div class="ny-doc-panel-head">
<img src="https://nylo.dev/images/nylo_logo.png" alt="" class="ny-mark h-[16px]">
<span>Elde edecekleriniz</span>
</div>
<div class="ny-doc-panel-body">
<div class="ny-doc-panel-grid">
<div class="ny-doc-panel-item">Önceden yapılandırılmış yönlendirme ve navigasyon</div>
<div class="ny-doc-panel-item">API servisi şablonu</div>
<div class="ny-doc-panel-item">Tema ve yerelleştirme kurulumu</div>
<div class="ny-doc-panel-item">Kod oluşturma için Metro CLI</div>
</div>
</div>
</div>


<div id="running-the-project"></div>

## Projeyi Çalıştırma

Nylo projeleri standart bir Flutter uygulaması gibi çalışır.

<div class="ny-doc-tabs" x-data="{ tab: 'Terminal' }">
<div class="ny-doc-tabbar" role="tablist">
<button type="button" role="tab" class="ny-doc-tab" @click="tab = 'Terminal'" :class="tab === 'Terminal' ? 'is-active' : ''" :aria-selected="tab === 'Terminal'">Terminal</button>
<button type="button" role="tab" class="ny-doc-tab" @click="tab = 'Android Studio'" :class="tab === 'Android Studio' ? 'is-active' : ''" :aria-selected="tab === 'Android Studio'">Android Studio</button>
<button type="button" role="tab" class="ny-doc-tab" @click="tab = 'VS Code'" :class="tab === 'VS Code' ? 'is-active' : ''" :aria-selected="tab === 'VS Code'">VS Code</button>
</div>

<div class="ny-doc-tabpanel" role="tabpanel" x-show="tab === 'Terminal'" x-cloak>

``` bash
flutter run
```

Derleme başarılı olursa, uygulama Nylo'nun varsayılan karşılama ekranını gösterecektir.

</div>

<div class="ny-doc-tabpanel" role="tabpanel" x-show="tab === 'Android Studio'" x-cloak>

Proje klasörünü açın, hedef seçiciden bir cihaz seçin ve **Run** düğmesine basın.

<a href="https://docs.flutter.dev/tools/android-studio#running-and-debugging" target="_BLANK">Flutter belgeleri: çalıştırma ve hata ayıklama ↗</a>

</div>

<div class="ny-doc-tabpanel" role="tabpanel" x-show="tab === 'VS Code'" x-cloak>

Proje klasörünü açın ve komut paletinden **Debug: Start Without Debugging** komutunu çalıştırın.

<a href="https://docs.flutter.dev/tools/vs-code#run-app-without-breakpoints" target="_BLANK">Flutter belgeleri: kesme noktası olmadan çalıştırma ↗</a>

</div>

</div>


<div id="metro-cli"></div>

## Metro CLI

Metro proje dosyalarını sizin için oluşturur. Menüyü görmek için argümansız çalıştırın veya doğrudan bir komut çağırın.

``` plaintext
$ metro

Metro - Nylo's Companion to Build Flutter apps by Anthony Gordon

Usage:
    command [options] [arguments]

Options
    -h

All commands:

[Widget Commands]
  make:page
  make:stateful_widget
  make:stateless_widget
  make:state_managed_widget
  make:navigation_hub
  make:journey_widget
  make:bottom_sheet_modal
  make:button
  make:form

[Helper Commands]
  make:model
  make:provider
  make:api_service
  make:controller
  make:event
  make:route_guard
  make:config
  make:interceptor
  make:command
  make:env
```

### Komut referansı

Her komut bir ad alır, ör. `metro make:page settings_page`

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">Widget komutları</div>
<div class="ny-doc-command">
<code>metro make:page</code>
<span>Yeni bir sayfa oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:stateful_widget</code>
<span>Durum bilgili bir widget oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:stateless_widget</code>
<span>Durumsuz bir widget oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:state_managed_widget</code>
<span>Durum yönetimli bir widget oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:navigation_hub</code>
<span>Bir navigasyon merkezi (alt navigasyon) oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:journey_widget</code>
<span>Navigasyon merkezi için bir yolculuk widget&#039;ı oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:bottom_sheet_modal</code>
<span>Bir alt sayfa modalı oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:button</code>
<span>Özel bir buton widget&#039;ı oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:form</code>
<span>Doğrulamalı bir form oluşturun</span>
</div>
</div>

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">Yardımcı komutlar</div>
<div class="ny-doc-command">
<code>metro make:model</code>
<span>Bir model sınıfı oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:provider</code>
<span>Bir provider oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:api_service</code>
<span>Bir API servisi oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:controller</code>
<span>Bir controller oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:event</code>
<span>Bir olay oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:route_guard</code>
<span>Bir rota koruması oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:config</code>
<span>Bir yapılandırma dosyası oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:interceptor</code>
<span>Bir ağ interceptor&#039;ı oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:command</code>
<span>Özel bir Metro komutu oluşturun</span>
</div>
<div class="ny-doc-command">
<code>metro make:env</code>
<span>.env dosyasından ortam yapılandırması oluşturun</span>
</div>
</div>

### Kullanım Örnekleri

``` bash
# Create a new page
metro make:page settings_page

# Create a model
metro make:model User

# Create an API service
metro make:api_service user_api_service
```


<div id="nylo-cli"></div>

## Nylo CLI

<!-- uncertain: strip label "Requires" — no established Turkish translation seen in existing locale files -->
<div class="ny-doc-strip">
<span class="ny-doc-strip-label">Gereksinimler</span>
<span class="ny-doc-strip-item">nylo_installer 1.8.0+</span>
<span class="ny-doc-strip-dot"></span>
<a href="#nylo-self-update">CLI&#039;ı güncelle →</a>
</div>

1. adımdaki `nylo` komutu, projeler oluşturmaktan daha fazlasını yapar. Derlemeleri temizlemek, iOS pod'larını yenilemek, testleri çalıştırmak ve çevirilerinizi kontrol etmek için onu proje dizininizden çalıştırın.

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">Proje komutları</div>
<div class="ny-doc-command">
<code>nylo new</code>
<span>Yeni bir proje oluşturun</span>
</div>
<div class="ny-doc-command">
<code>nylo init</code>
<span>Kabuğunuzda metro alias&#039;ını ayarlayın</span>
</div>
<div class="ny-doc-command">
<code>nylo clean</code>
<span>flutter clean ve flutter pub get çalıştırın</span>
</div>
<div class="ny-doc-command">
<code>nylo ios:pod-refresh</code>
<span>iOS pod&#039;larınızı yeniden yükleyin</span>
</div>
<div class="ny-doc-command">
<code>nylo metro</code>
<span>Alias olmadan bir Metro komutu çalıştırın</span>
</div>
</div>

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">Test ve çeviriler</div>
<div class="ny-doc-command">
<code>nylo test</code>
<span>Testlerinizi biçimlendirin ve çalıştırın</span>
</div>
<div class="ny-doc-command">
<code>nylo locale:find-untranslated</code>
<span>.tr() içine alınmamış metni bulun</span>
</div>
<div class="ny-doc-command">
<code>nylo locale:check-missing-keys</code>
<span>Dil dosyalarınızda eksik olan anahtarları bulun</span>
</div>
</div>

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">CLI&#039;ın kendisi</div>
<div class="ny-doc-command">
<code>nylo self-update</code>
<span>nylo&#039;yu en son sürüme güncelleyin</span>
</div>
<div class="ny-doc-command">
<code>nylo --version</code>
<span>Yüklü sürümü gösterin</span>
</div>
</div>

Seçenek alan komutlar bunları `-h` ile listeler, örneğin `nylo test -h`. Test etme [Testleri Çalıştırma](/docs/7.x/testing#running-tests) bölümünde, `locale:` komutları ise [Çevirileri Denetleme](/docs/7.x/localization#auditing-translations) bölümünde ele alınmıştır.

<div id="nylo-clean"></div>

### Projeyi Temizleme

`nylo clean`, `flutter clean` ve ardından `flutter pub get` çalıştırır. Normal bir temizleme yeterli olmadığında bir platform bayrağı ekleyin:

``` bash
# flutter clean, ardından flutter pub get
nylo clean

# ios/Pods, ios/.symlinks ve ios/Podfile.lock dosyalarını da kaldırır, ardından pod install --repo-update çalıştırır
nylo clean --ios

# android/ içinde gradlew clean komutunu da çalıştırır
nylo clean --android

# Yukarıdakilerin ikisi de
nylo clean --all
```

Bir projede `ios/` veya `android/` klasörü yoksa, o platform bir uyarıyla atlanır. `pod install` yalnızca macOS'ta çalışır.

<div id="nylo-ios-pod-refresh"></div>

### iOS Pod'larını Yenileme

CocoaPods senkronizasyondan çıktığında, `nylo ios:pod-refresh` `ios/Pods`, `ios/.symlinks` ve `ios/Podfile.lock` dosyalarını siler, ardından `ios/` klasöründe `pod install --repo-update` çalıştırır:

``` bash
nylo ios:pod-refresh
```

Bunu macOS'ta proje kök dizininizden çalıştırın. `nylo clean --ios`'un aksine, `flutter clean` veya `flutter pub get` çalıştırmaz.

<div id="nylo-metro"></div>

### Metro'yu Alias Olmadan Çalıştırma

`nylo metro`, kendisinden sonra gelen her şeyi Metro'ya (`dart run nylo_framework:main`) iletir. Bunu, henüz `nylo init` çalıştırmadıysanız ya da `nylo init`'in `metro` alias'ını sizin için ekleyemediği Windows'ta kullanın:

``` bash
nylo metro make:page settings_page
nylo metro make:model User
```

<div id="nylo-self-update"></div>

### CLI'ı Güncelleme

``` bash
nylo self-update
```

Bu, pub.dev'i kontrol eder ve daha yeni bir sürüm varsa `nylo_installer`'ı yeniden yükler. Bir komut tamamlandıktan sonra `nylo`, bir güncelleme olduğunda da size bunu bildirir.

<!-- uncertain: "piped reports" (shell pipe redirection of CLI output) has no established Turkish equivalent in this corpus -->
Çıktı bir terminale gitmediğinde sessiz kalır, böylece bildirim CI günlüklerinde veya boru hattıyla aktarılan raporlarda asla görünmez.

Hangi sürümün yüklü olduğunu görmek için:

``` bash
nylo --version
```
