Ruby एक गतिशील इंटरप्रेटेड भाषा है जिसमें सुरुचिपूर्ण सिंटैक्स है, जो Ruby on Rails फ्रेमवर्क के लिए प्रसिद्ध है। मोबाइल डेवलपमेंट में, Ruby का उपयोग मुख्य रूप से Fastlane के माध्यम से किया जाता है — जो iOS और Android अनुप्रयोगों के बिल्ड, परीक्षण और डिप्लॉयमेंट को स्वचालित करने का मानक उपकरण है। Fastlane के आधिकारिक दस्तावेज़ के अनुसार, इस उपकरण का उपयोग दुनिया भर में 100,000 से अधिक परियोजनाओं में किया जाता है।
मुख्य बातें
Ruby युकिहिरो मात्सुमोतो द्वारा 1995 में बनाई गई एक गतिशील इंटरप्रेटेड ओपन-सोर्स भाषा है। Ruby का मूल सिद्धांत "इष्टतम सरलता" (कम से कम आश्चर्य का सिद्धांत) है। यह भाषा ब्लॉक्स (क्लोज़र), शुद्ध ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण (सब कुछ एक ऑब्जेक्ट है, जिसमें संख्याएँ भी शामिल हैं) और एक शक्तिशाली मेटाप्रोग्रामिंग सिस्टम के लिए जानी जाती है।
Ruby YARV (Yet Another Ruby VM) इंटरप्रेटर पर संस्करण 3.1 से JIT संकलन के साथ चलती है। वर्तमान संस्करण Ruby 3.4 (2025) में डेकोरेटर, बेहतर Prism पार्सर और RBS के माध्यम से प्रयोगात्मक टाइप समर्थन शामिल है। RubyGems — पैकेज मैनेजर — में 200,000 से अधिक जेम्स हैं।
Ruby on Rails Ruby में निर्मित सबसे प्रसिद्ध वेब फ्रेमवर्क है, लेकिन मोबाइल डेवलपमेंट में Ruby का उपयोग अलग तरीके से किया जाता है। इसका मुख्य क्षेत्र Fastlane है: कोड साइनिंग से लेकर स्टोर प्रकाशन तक मोबाइल ऐप जीवनचक्र के सभी चरणों को स्वचालित करने के लिए Ruby स्क्रिप्ट्स और जेम्स का एक इकोसिस्टम।
Fastlane के साथ काम करने के लिए केवल Ruby की बुनियादी समझ आवश्यक है: मेथड्स, do-end ब्लॉक्स, सिंबल (:symbol) और हैश सिंटैक्स { key: value }। Python के विपरीत, Ruby इंडेंटेशन के बजाय ब्लॉक्स को बंद करने के लिए end का उपयोग करती है। मेथड्स को कोष्ठक के बिना बुलाया जा सकता है — इसका सक्रिय रूप से Fastlane DSL में उपयोग किया जाता है।
# Fastlane में उपयोग किया जाने वाला मूल Ruby सिंटैक्स
def download_assets(version, platform: "ios")
paths = {
ios: "ios/Assets.car",
android: "android/app/src/main/assets"
}
url = "https://cdn.example.com/assets/#{version}/#{paths[platform.to_sym]}"
puts "Downloading from: #{url}"
unless File.exist?("temp/assets")
Dir.mkdir("temp/assets")
end
result = system("curl -o temp/assets.zip #{url}")
raise "Download failed" unless result
end
download_assets("1.2.3", platform: "android")उदाहरण में, download_assets मेथड एक version आर्गुमेंट और एक वैकल्पिक नामित पैरामीटर platform (डिफ़ॉल्ट "ios") लेता है। #{...} के साथ स्ट्रिंग इंटरपोलेशन मानों को सीधे स्ट्रिंग्स में एम्बेड करता है। unless, if के विपरीत है — यह कोड तब निष्पादित करता है जब स्थिति गलत हो।
Fastlane Ruby में लिखा गया एक ओपन-सोर्स टूल है। gem install fastlane के माध्यम से स्थापित, यह मोबाइल डेवलपर के सबसे नियमित कार्यों को स्वचालित करने के लिए कमांड का एक सेट प्रदान करता है: स्क्रीनशॉट बनाना, कोड साइनिंग, TestFlight और Google Play Console में प्रकाशन।
Fastlane में टूल्स शामिल हैं: sigh (प्रमाणपत्र प्रबंधन), match (टीमों में प्रमाणपत्र सिंक्रनाइज़ेशन), gym (iOS बिल्ड), gradle (Android बिल्ड), deliver (iOS प्रकाशन), supply (Android प्रकाशन), snapshot (स्क्रीनशॉट), scan (परीक्षण)। सभी टूल्स एक ही Fastfile से सुलभ हैं।
बड़ी परियोजनाओं में, Fastlane एक ही पाइपलाइन में 50+ एक्शन संभालता है: संस्करण वृद्धि, CDN से एसेट डाउनलोड, बिल्ड, साइनिंग, App Store Connect पर अपलोड, Slack सूचनाएँ भेजना। पूरी पाइपलाइन एक ही कमांड से चलती है: fastlane release।
Fastfile एक Ruby-जैसी DSL फ़ाइल है जो एक्शन (लेन) के अनुक्रम का वर्णन करती है। प्रत्येक लेन एक अलग कार्य है: beta (परीक्षण बिल्ड), release, screenshots। लेन पारित मापदंडों के साथ अन्य लेन को कॉल कर सकते हैं।
# Fastfile — iOS ऐप बिल्ड पाइपलाइन कॉन्फ़िगरेशन
fastlane_version "2.220.0"
default_platform :ios
platform :ios do
desc "TestFlight बिल्ड बनाना और डिप्लॉय करना"
lane :beta do |options|
increment_build_number(
build_number: options[:build]
)
match(type: :appstore)
gym(
scheme: "MyApp",
export_method: "app-store",
configuration: "Release"
)
upload_to_testflight(
app_identifier: "com.example.myapp"
)
slack(
message: "Build #{options[:build]} TestFlight पर अपलोड हुआ"
)
end
endबीटा लेन क्रमिक रूप से निष्पादित होता है: बिल्ड नंबर बढ़ाएँ (increment_build_number), प्रमाणपत्र सिंक करें (match), आर्काइव बनाएँ (gym), TestFlight पर अपलोड करें (upload_to_testflight), और Slack सूचना भेजें। :build पैरामीटर एक नामित आर्गुमेंट के रूप में लेन को पास किया जाता है।
Fastlane एक ही Fastfile में दोनों प्लेटफ़ॉर्म का समर्थन करता है। Android के लिए, gradle, supply और google_play_track_version_codes एक्शन के साथ platform :android के अंदर एक लेन का उपयोग करें।
platform :android do
desc "APK बनाना और Google Play Internal Testing में प्रकाशित करना"
lane :beta do
gradle(
task: "assemble",
build_type: "Release",
flavor: "Production"
)
supply(
track: "internal",
apk_paths: ["app/build/outputs/apk/release/app-release.apk"]
)
end
endFastlane में 200 से अधिक अंतर्निहित एक्शन शामिल हैं। नीचे मोबाइल डेवलपमेंट के लिए सबसे महत्वपूर्ण हैं, श्रेणी के अनुसार व्यवस्थित।
| एक्शन | प्लेटफ़ॉर्म | उद्देश्य |
|---|---|---|
| match | iOS | Git के माध्यम से प्रमाणपत्र और प्रोविज़निंग प्रोफ़ाइल सिंक करें |
| gym | iOS | .app और .ipa आर्काइव बनाएँ |
| scan | iOS | सिम्युलेटर पर UI परीक्षण चलाएँ |
| snapshot | iOS | विभिन्न उपकरणों पर स्वचालित स्क्रीनशॉट निर्माण |
| deliver | iOS | बिल्ड, स्क्रीनशॉट और मेटाडेटा App Store Connect पर अपलोड करें |
| pilot | iOS | TestFlight प्रबंधन: बिल्ड अपलोड करें, परीक्षक जोड़ें |
| gradle | Android | Gradle कार्य चलाएँ: assemble, test, bundle |
| supply | Android | APK/AAB और मेटाडेटा Google Play Console पर अपलोड करें |
| screengrab | Android | Google Play के लिए स्वचालित स्क्रीनशॉट |
| firebase_app_distribution | दोनों | बिल्ड Firebase App Distribution पर अपलोड करें |
match डेवलपर्स के बीच iOS प्रमाणपत्र और प्रोविज़निंग प्रोफ़ाइल को सिंक्रनाइज़ करने के लिए एक Fastlane जेम है। सभी रहस्य एक एन्क्रिप्टेड Git रिपॉजिटरी या S3 में संग्रहीत होते हैं। Match स्वचालित रूप से प्रमाणपत्र उत्पन्न करता है यदि वे गायब हैं और समाप्ति पर उन्हें नवीनीकृत करता है।
# नए प्रोजेक्ट के लिए match आरंभ करना
$ fastlane match init
# App Store प्रमाणपत्र बनाना और सिंक करना
$ fastlane match appstore
# टीम के लिए Development प्रमाणपत्र बनाना
$ fastlane match development
# समाप्ति पर सभी प्रमाणपत्र नवीनीकृत करना
$ fastlane match --forceMatch एक पासफ़्रेज़ के साथ निजी कुंजियाँ संग्रहीत करता है जो केवल डेवलपर्स को ज्ञात होती है। प्रत्येक डेवलपर प्रमाणपत्र रिपॉजिटरी को क्लोन करता है और वर्तमान प्रोफ़ाइल स्थापित करने के लिए match चलाता है। Apple प्रमाणपत्र 1 वर्ष के लिए वैध हैं; match स्वचालित रूप से उन्हें नवीनीकृत करता है।
Fastlane किसी भी CI/CD प्लेटफ़ॉर्म के साथ एकीकृत होता है: GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins और Xcode Cloud (xcode-build के माध्यम से)। Fastlane CI पर fastlane <lane_name> का उपयोग करके चलता है और यदि कोई चरण विफल होता है तो एक त्रुटि कोड लौटाता है।
GitHub Actions सेटअप में Ruby, fastlane स्थापित करना और bundle exec fastlane के माध्यम से लेन चलाना शामिल है। iOS बिल्ड के लिए macOS रनर की आवश्यकता होती है। Android बिल्ड ubuntu-latest का उपयोग कर सकते हैं, जो सस्ता है।
# .github/workflows/deploy.yml — CI/CD Fastlane के साथ
name: Deploy Mobile App
on:
push:
branches: [main]
jobs:
ios-deploy:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
- run: bundle install
- run: bundle exec fastlane beta
- env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}वर्कफ़्लो main पर पुश करने पर चलता है। macOS रनर Fastfile से bundle exec fastlane beta निष्पादित करता है। MATCH_PASSWORD प्रमाणपत्र डिक्रिप्शन के लिए GitHub Secrets के माध्यम से पास किया जाता है। लेन पूरी होने के बाद, एक Slack एक्शन सूचना भेजता है।
RubyGems Ruby के लिए पैकेज मैनेजर है। Fastlane को प्लगइन्स — जेम्स के माध्यम से विस्तारित किया जाता है जो नए एक्शन जोड़ते हैं। fastlane-plugin-versioning प्लगइन संस्करणों का प्रबंधन करता है, fastlane-plugin-firebase_app_distribution बिल्ड को Firebase पर अपलोड करता है। GitHub पर 500 से अधिक Fastlane प्लगइन्स हैं।
प्रोजेक्ट रूट पर Gemfile पुनरुत्पादनीय बिल्ड के लिए सभी निर्भरताओं के संस्करणों को फिक्स करता है। bundle install Gemfile.lock से जेम्स स्थापित करता है। मोबाइल डेवलपमेंट के लिए आवश्यक जेम्स में शामिल हैं: fastlane, cocoapods (iOS निर्भरताएँ), xcodeproj (.xcodeproj हेरफेर)।
# मोबाइल प्रोजेक्ट के लिए Gemfile
source "https://rubygems.org"
gem "fastlane", "~> 2.220"
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)Fastlane एकमात्र ऑटोमेशन टूल नहीं है। आइए एक मोबाइल टीम के लिए महत्वपूर्ण मानदंडों के आधार पर इसकी तुलना मुख्य विकल्पों से करें।
| मानदंड | Fastlane (Ruby) | Bitrise (वेब) | Xcode Cloud (Apple) | GitHub Actions (YAML) |
|---|---|---|---|---|
| लचीलापन | अधिकतम (कोड) | मध्यम (चरण) | निम्न (सीमित) | उच्च |
| iOS | पूर्ण समर्थन | पूर्ण | पूर्ण (अंतर्निहित) | स्व-होस्टेड macOS के माध्यम से |
| Android | पूर्ण समर्थन | पूर्ण | नहीं | पूर्ण |
| प्रमाणपत्र (match) | अंतर्निहित | Code Signing के माध्यम से | स्वचालित | fastlane के माध्यम से |
| स्थानीय निष्पादन | हाँ | नहीं (केवल CI) | नहीं | act के माध्यम से |
| प्लगइन्स | 500+ | 200+ एकीकरण | कोई नहीं | 20,000+ एक्शन |
Fastlane जटिल पाइपलाइनों के लिए सबसे लचीला उपकरण बना हुआ है। Bitrise Ruby डेवलपर के बिना टीमों के लिए सुविधाजनक है। Xcode Cloud सरल iOS परियोजनाओं के लिए काम करता है। GitHub Actions आदर्श है यदि टीम पहले से GitHub का उपयोग करती है।
अक्सर पूछे जाने वाले प्रश्न
Ruby का उपयोग मोबाइल एप्लिकेशन लिखने के लिए नहीं, बल्कि Fastlane के माध्यम से बिल्ड, परीक्षण और डिप्लॉयमेंट प्रक्रियाओं को स्वचालित करने के लिए किया जाता है। Fastlane iOS और Android डेवलपमेंट में CI/CD के लिए वास्तविक मानक है।
Fastlane macOS, Linux और Windows पर काम करता है, लेकिन iOS बिल्ड के लिए Xcode और macOS की आवश्यकता होती है। Android बिल्ड किसी भी प्लेटफ़ॉर्म पर चल सकते हैं। डेवलपर्स स्थानीय रूप से macOS का उपयोग करते हैं, और CI पर — iOS के लिए macOS और Android के लिए Linux।
Fastlane के साथ काम करने के लिए Ruby की बुनियादी समझ पर्याप्त है। Fastlane Fastfile में Ruby-जैसी DSL का उपयोग करता है। सामान्य कार्यों के लिए, जेम्स, do-end ब्लॉक्स और बुनियादी सिंटैक्स का ज्ञान पर्याप्त है। गहन Ruby ज्ञान की आवश्यकता नहीं है।
विकल्पों में शामिल हैं: Gradle Android के लिए (अंतर्निहित), Xcode Cloud (Apple), Bitrise (वेब इंटरफ़ेस), GitHub Actions (YAML)। Fastlane एक्शन और प्लगइन्स के समृद्ध इकोसिस्टम के कारण सबसे लचीला उपकरण बना हुआ है।
हाँ, Fastlane का उपयोग बड़ी कंपनियों द्वारा किया जाता है। सभी एक्शन और कॉन्फ़िगरेशन फ़ाइलें रिपॉजिटरी में वर्शन की जाती हैं, और match रिपॉजिटरी या S3 में प्रमाणपत्रों का सुरक्षित भंडारण सुनिश्चित करता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।