# इंस्टॉलेशन

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

तीन कमांड आपको एक खाली फ़ोल्डर से चलती हुई Flutter ऐप तक ले जाते हैं, जिसमें रूटिंग, नेटवर्किंग, थीम और कोड जेनरेशन पहले से सेट होते हैं।

<div class="ny-doc-strip">
<span class="ny-doc-strip-label">शुरू करने से पहले</span>
<span class="ny-doc-strip-item">Flutter SDK इंस्टॉल</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="/hi/docs/7.x/requirements">पूरी आवश्यकताएँ →</a>
</div>

## इंस्टॉल

इन कमांड को क्रम से चलाएँ। हर कमांड को दोबारा चलाना सुरक्षित है।

<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 को ग्लोबली इंस्टॉल करें</h3>

आपके सिस्टम पर `nylo` कमांड स्थापित करता है।

``` 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">एक नया प्रोजेक्ट बनाएँ</h3>

यह कमांड Nylo टेम्पलेट को क्लोन करता है, प्रोजेक्ट को आपके ऐप नाम के साथ कॉन्फ़िगर करता है, और स्वचालित रूप से सभी डिपेंडेंसीज़ इंस्टॉल करता है।

``` 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 एलियास सेटअप करें</h3>

यह आपके प्रोजेक्ट के लिए `metro` कमांड को कॉन्फ़िगर करता है, जिससे आप पूर्ण `dart run` सिंटैक्स के बिना Metro CLI कमांड उपयोग कर सकते हैं।

``` bash
cd my_app
nylo init
```

इसके बाद अपना टर्मिनल रीस्टार्ट करें, या `nylo init` द्वारा प्रिंट किया गया `source` कमांड चलाएँ।

</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>आपको क्या मिलता है</span>
</div>
<div class="ny-doc-panel-body">
<div class="ny-doc-panel-grid">
<div class="ny-doc-panel-item">पूर्व-कॉन्फ़िगर्ड रूटिंग और नेविगेशन</div>
<div class="ny-doc-panel-item">API सर्विस बॉयलरप्लेट</div>
<div class="ny-doc-panel-item">थीम और लोकलाइज़ेशन सेटअप</div>
<div class="ny-doc-panel-item">कोड जेनरेशन के लिए Metro CLI</div>
</div>
</div>
</div>


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

## प्रोजेक्ट चलाना

Nylo प्रोजेक्ट किसी भी मानक Flutter ऐप की तरह चलते हैं।

<div class="ny-doc-tabs" x-data="{ tab: '\u091f\u0930\u094d\u092e\u093f\u0928\u0932' }">
<div class="ny-doc-tabbar" role="tablist">
<button type="button" role="tab" class="ny-doc-tab" @click="tab = '\u091f\u0930\u094d\u092e\u093f\u0928\u0932'" :class="tab === '\u091f\u0930\u094d\u092e\u093f\u0928\u0932' ? 'is-active' : ''" :aria-selected="tab === '\u091f\u0930\u094d\u092e\u093f\u0928\u0932'">टर्मिनल</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 === '\u091f\u0930\u094d\u092e\u093f\u0928\u0932'" x-cloak>

``` bash
flutter run
```

यदि बिल्ड सफल होता है, तो ऐप Nylo की डिफ़ॉल्ट लैंडिंग स्क्रीन प्रदर्शित करेगा।

</div>

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

प्रोजेक्ट फ़ोल्डर खोलें, टारगेट सेलेक्टर से डिवाइस चुनें, फिर **Run** दबाएँ।

<a href="https://docs.flutter.dev/tools/android-studio#running-and-debugging" target="_BLANK">Flutter दस्तावेज़: चलाना और डिबगिंग ↗</a>

</div>

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

प्रोजेक्ट फ़ोल्डर खोलें, फिर कमांड पैलेट से **Debug: Start Without Debugging** चलाएँ।

<a href="https://docs.flutter.dev/tools/vs-code#run-app-without-breakpoints" target="_BLANK">Flutter दस्तावेज़: बिना ब्रेकपॉइंट के चलाएँ ↗</a>

</div>

</div>


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

## Metro CLI

Metro आपके लिए प्रोजेक्ट फ़ाइलें जेनरेट करता है। मेनू देखने के लिए इसे बिना आर्ग्युमेंट चलाएँ, या सीधे कोई कमांड चलाएँ।

``` 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
```

### कमांड रेफरेंस

हर कमांड एक नाम लेता है, जैसे `metro make:page settings_page`

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">विजेट कमांड</div>
<div class="ny-doc-command">
<code>metro make:page</code>
<span>नया पेज बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:stateful_widget</code>
<span>स्टेटफुल विजेट बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:stateless_widget</code>
<span>स्टेटलेस विजेट बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:state_managed_widget</code>
<span>स्टेट-मैनेज्ड विजेट बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:navigation_hub</code>
<span>नेविगेशन हब (बॉटम नेव) बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:journey_widget</code>
<span>नेविगेशन हब के लिए जर्नी विजेट बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:bottom_sheet_modal</code>
<span>बॉटम शीट मोडल बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:button</code>
<span>कस्टम बटन विजेट बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:form</code>
<span>वैलिडेशन के साथ फ़ॉर्म बनाएँ</span>
</div>
</div>

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">हेल्पर कमांड</div>
<div class="ny-doc-command">
<code>metro make:model</code>
<span>मॉडल क्लास बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:provider</code>
<span>प्रोवाइडर बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:api_service</code>
<span>API सर्विस बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:controller</code>
<span>कंट्रोलर बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:event</code>
<span>इवेंट बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:route_guard</code>
<span>रूट गार्ड बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:config</code>
<span>कॉन्फ़िग फ़ाइल बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:interceptor</code>
<span>नेटवर्क इंटरसेप्टर बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:command</code>
<span>कस्टम Metro कमांड बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>metro make:env</code>
<span>.env से एनवायरनमेंट कॉन्फ़िग जेनरेट करें</span>
</div>
</div>

### उदाहरण उपयोग

``` 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: label "Requires" has no established translation in this locale file's existing x-doc-strip usage -->
<div class="ny-doc-strip">
<span class="ny-doc-strip-label">आवश्यक</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 अपडेट करें →</a>
</div>

स्टेप 1 वाला `nylo` कमांड सिर्फ़ प्रोजेक्ट बनाने से कहीं ज़्यादा कर सकता है। बिल्ड क्लीन करने, iOS पॉड्स रीफ्रेश करने, टेस्ट चलाने और अपने ट्रांसलेशन जाँचने के लिए इसे अपनी प्रोजेक्ट डायरेक्टरी से चलाएँ।

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">प्रोजेक्ट कमांड</div>
<div class="ny-doc-command">
<code>nylo new</code>
<span>नया प्रोजेक्ट बनाएँ</span>
</div>
<div class="ny-doc-command">
<code>nylo init</code>
<span>अपने शेल में metro एलियास सेटअप करें</span>
</div>
<div class="ny-doc-command">
<code>nylo clean</code>
<span>flutter clean और flutter pub get चलाएँ</span>
</div>
<div class="ny-doc-command">
<code>nylo ios:pod-refresh</code>
<span>अपने iOS पॉड्स फिर से इंस्टॉल करें</span>
</div>
<div class="ny-doc-command">
<code>nylo metro</code>
<span>एलियास के बिना Metro कमांड चलाएँ</span>
</div>
</div>

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">टेस्टिंग और ट्रांसलेशन</div>
<div class="ny-doc-command">
<code>nylo test</code>
<span>अपने टेस्ट फ़ॉर्मेट करें और चलाएँ</span>
</div>
<div class="ny-doc-command">
<code>nylo locale:find-untranslated</code>
<span>ऐसा टेक्स्ट खोजें जो .tr() में रैप नहीं है</span>
</div>
<div class="ny-doc-command">
<code>nylo locale:check-missing-keys</code>
<span>अपनी lang फ़ाइलों से मिसिंग कीज़ खोजें</span>
</div>
</div>

<div class="ny-doc-commands">
<div class="ny-doc-commands-head">स्वयं CLI</div>
<div class="ny-doc-command">
<code>nylo self-update</code>
<span>nylo को नवीनतम वर्शन में अपडेट करें</span>
</div>
<div class="ny-doc-command">
<code>nylo --version</code>
<span>इंस्टॉल किया गया वर्शन दिखाएँ</span>
</div>
</div>

जिन कमांड्स में ऑप्शन होते हैं, वे `-h` के साथ लिस्ट होते हैं, उदाहरण के लिए `nylo test -h`। टेस्टिंग के बारे में [टेस्ट चलाना](/docs/7.x/testing#running-tests) में बताया गया है, और `locale:` कमांड्स के बारे में [ट्रांसलेशन ऑडिट करना](/docs/7.x/localization#auditing-translations) में।

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

### प्रोजेक्ट क्लीन करना

`nylo clean`, `flutter clean` और फिर `flutter pub get` चलाता है। जब सामान्य क्लीन काफ़ी न हो, तो एक प्लेटफ़ॉर्म फ़्लैग जोड़ें:

``` bash
# flutter clean, फिर flutter pub get
nylo clean

# ios/Pods, ios/.symlinks और ios/Podfile.lock भी हटाएँ, फिर pod install --repo-update चलाएँ
nylo clean --ios

# android/ में gradlew clean भी चलाएँ
nylo clean --android

# ऊपर के दोनों
nylo clean --all
```

यदि किसी प्रोजेक्ट में `ios/` या `android/` फ़ोल्डर नहीं है, तो उस प्लेटफ़ॉर्म को चेतावनी के साथ स्किप कर दिया जाता है। `pod install` केवल macOS पर चलता है।

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

### iOS पॉड्स रीफ्रेश करना

जब CocoaPods सिंक से बाहर हो जाता है, तो `nylo ios:pod-refresh`, `ios/Pods`, `ios/.symlinks` और `ios/Podfile.lock` को डिलीट करता है, फिर `ios/` फ़ोल्डर में `pod install --repo-update` चलाता है:

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

इसे macOS पर अपने प्रोजेक्ट रूट से चलाएँ। `nylo clean --ios` के विपरीत, यह `flutter clean` या `flutter pub get` नहीं चलाता।

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

### एलियास के बिना Metro चलाना

`nylo metro` अपने बाद आने वाली हर चीज़ को Metro (`dart run nylo_framework:main`) तक पास करता है। इसका उपयोग तब करें जब आपने अभी तक `nylo init` न चलाया हो, या Windows पर, जहाँ `nylo init` आपके लिए `metro` एलियास नहीं जोड़ सकता:

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

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

### CLI अपडेट करना

``` bash
nylo self-update
```

यह pub.dev जाँचता है और यदि कोई नया वर्शन उपलब्ध है तो `nylo_installer` को फिर से इंस्टॉल करता है। किसी कमांड के पूरा होने के बाद, `nylo` आपको यह भी बताता है कि कोई अपडेट उपलब्ध है। जब आउटपुट टर्मिनल पर नहीं जा रहा हो, तो यह चुप रहता है, ताकि यह सूचना कभी भी CI लॉग्स या पाइप्ड रिपोर्ट्स में न पहुँचे।

यह देखने के लिए कि आपने कौन-सा वर्शन इंस्टॉल किया है:

``` bash
nylo --version
```
