মোবাইল ডেভেলপমেন্টে Ruby: Fastlane, CI/CD এবং অটোমেশন

লেখক: IT Sectr প্রকাশিত: 2026-02-11 পড়ার সময়: 8 মিনিট

Ruby একটি গতিশীল ইন্টারপ্রেটেড ভাষা যার মার্জিত সিনট্যাক্স, যা Ruby on Rails ফ্রেমওয়ার্কের জন্য বিখ্যাত। মোবাইল ডেভেলপমেন্টে, Ruby মূলত Fastlane-এর মাধ্যমে ব্যবহার করা হয় — যা iOS এবং Android অ্যাপ্লিকেশনের বিল্ড, টেস্টিং এবং ডিপ্লয়মেন্ট অটোমেশনের মানক টুল। Fastlane-এর অফিসিয়াল ডকুমেন্টেশন অনুযায়ী, টুলটি বিশ্বব্যাপী 100,000-এর বেশি প্রকল্পে ব্যবহৃত হয়।

মূল বিষয়

  • Ruby — একটি গতিশীল ভাষা যা বিল্ড অটোমেশনের জন্য Fastlane-এর মাধ্যমে মোবাইল ডেভেলপমেন্টে ব্যবহৃত হয়
  • Fastlane — iOS এবং Android ডেভেলপমেন্টে CI/CD-এর জন্য ডি-ফ্যাক্টো স্ট্যান্ডার্ড, যা Ruby-তে লেখা
  • Fastfile — একটি কনফিগারেশন ফাইল যা Ruby-সদৃশ DSL ব্যবহার করে বিল্ড প্রক্রিয়া বর্ণনা করে
  • Match এবং Deliver — সার্টিফিকেট ম্যানেজমেন্ট এবং App Store প্রকাশনার জন্য Fastlane অ্যাকশন
  • Ruby Gems — একটি প্যাকেজ ম্যানেজার যা প্লাগইনের মাধ্যমে Fastlane-কে সম্প্রসারণের সুযোগ দেয়

Ruby কী?

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 সিনট্যাক্সের মৌলিক বিষয়

Fastlane-এর সাথে কাজ করার জন্য শুধুমাত্র Ruby-এর মৌলিক বোধগম্যতা প্রয়োজন: মেথড, do-end ব্লক, সিম্বল (:symbol) এবং হ্যাশ সিনট্যাক্স { key: value }। Python-এর বিপরীতে, Ruby ইন্ডেন্টেশনের পরিবর্তে ব্লক বন্ধ করার জন্য end ব্যবহার করে। মেথডগুলো বন্ধনী ছাড়া কল করা যায় — এটি Fastlane DSL-এ সক্রিয়ভাবে ব্যবহৃত হয়।

ruby
# 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-সহ মোবাইল বিল্ড অটোমেশন

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: বিল্ড পাইপলাইন কনফিগারেশন

Fastfile একটি Ruby-সদৃশ DSL ফাইল যা অ্যাকশনের (লেন) ক্রম বর্ণনা করে। প্রতিটি লেন একটি পৃথক কাজ: beta (পরীক্ষা বিল্ড), release, screenshots। লেন পাস করা প্যারামিটার দিয়ে অন্য লেন কল করতে পারে।

ruby
# 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 প্যারামিটারটি একটি নামকৃত আর্গুমেন্ট হিসেবে লেনে পাস করা হয়।

Fastfile-এ Android কনফিগারেশন

Fastlane একটি Fastfile-এ উভয় প্ল্যাটফর্ম সমর্থন করে। Android-এর জন্য, gradle, supply এবং google_play_track_version_codes অ্যাকশনসহ platform :android-এর ভিতরে একটি লেন ব্যবহার করুন।

ruby
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
end

iOS এবং Android-এর জন্য মূল Fastlane অ্যাকশন

Fastlane-এ 200-এর বেশি বিল্ট-ইন অ্যাকশন অন্তর্ভুক্ত। নিচে মোবাইল ডেভেলপমেন্টের জন্য সবচেয়ে গুরুত্বপূর্ণগুলো বিভাগ অনুযায়ী সাজানো হল।

অ্যাকশনপ্ল্যাটফর্মউদ্দেশ্য
matchiOSGit-এর মাধ্যমে সার্টিফিকেট এবং প্রোভিশনিং প্রোফাইল সিঙ্ক্রোনাইজ করুন
gymiOS.app এবং .ipa আর্কাইভ বিল্ড করুন
scaniOSসিমুলেটরে UI টেস্ট চালান
snapshotiOSবিভিন্ন ডিভাইসে স্বয়ংক্রিয় স্ক্রিনশট তৈরি
deliveriOSবিল্ড, স্ক্রিনশট এবং মেটাডেটা App Store Connect-এ আপলোড করুন
pilotiOSTestFlight ব্যবস্থাপনা: বিল্ড আপলোড, টেস্টার যোগ করুন
gradleAndroidGradle কাজ চালান: assemble, test, bundle
supplyAndroidAPK/AAB এবং মেটাডেটা Google Play Console-এ আপলোড করুন
screengrabAndroidGoogle Play-এর জন্য স্বয়ংক্রিয় স্ক্রিনশট
firebase_app_distributionউভয়Firebase App Distribution-এ বিল্ড আপলোড করুন

Match: নিরাপদ সার্টিফিকেট ব্যবস্থাপনা

match একটি Fastlane জেম যা ডেভেলপারদের মধ্যে iOS সার্টিফিকেট এবং প্রোভিশনিং প্রোফাইল সিঙ্ক্রোনাইজ করে। সব গোপন তথ্য এনক্রিপ্টেড Git রিপোজিটরি বা S3-তে সংরক্ষিত থাকে। Match স্বয়ংক্রিয়ভাবে সার্টিফিকেট তৈরি করে যদি সেগুলো অনুপস্থিত থাকে এবং মেয়াদ শেষে সেগুলো নবায়ন করে।

ruby
# নতুন প্রকল্পের জন্য match আরম্ভ করা
$ fastlane match init

# App Store সার্টিফিকেট তৈরি এবং সিঙ্ক করা
$ fastlane match appstore

# টিমের জন্য Development সার্টিফিকেট তৈরি করা
$ fastlane match development

# মেয়াদ শেষে সব সার্টিফিকেট নবায়ন করা
$ fastlane match --force

Match একটি পাসফ্রেজসহ প্রাইভেট কী সংরক্ষণ করে যা শুধু ডেভেলপাররা জানে। প্রতিটি ডেভেলপার সার্টিফিকেট রিপোজিটরি ক্লোন করে এবং বর্তমান প্রোফাইল ইনস্টল করতে match চালায়। Apple সার্টিফিকেট 1 বছরের জন্য বৈধ; match স্বয়ংক্রিয়ভাবে সেগুলো নবায়ন করে।

CI/CD সিস্টেমের সাথে Fastlane একীভূতকরণ

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 ব্যবহার করতে পারে, যা সস্তা।

yaml
# .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 অ্যাকশন বিজ্ঞপ্তি পাঠায়।

Ruby Gems এবং Fastlane প্লাগইন

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 ম্যানিপুলেশন)।

ruby
# মোবাইল প্রকল্পের জন্য 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 একমাত্র অটোমেশন টুল নয়। আসুন একটি মোবাইল টিমের জন্য গুরুত্বপূর্ণ মানদণ্ডের ভিত্তিতে মূল বিকল্পগুলোর সাথে তুলনা করি।

মানদণ্ড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 ব্যবহার করে।

সচরাচর জিজ্ঞাসিত প্রশ্ন

Kotlin এবং Swift থাকলে মোবাইল ডেভেলপমেন্টে Ruby কেন ব্যবহার করব?

Ruby মোবাইল অ্যাপ্লিকেশন লেখার জন্য নয়, বরং Fastlane-এর মাধ্যমে বিল্ড, টেস্টিং এবং ডিপ্লয়মেন্ট প্রক্রিয়া অটোমেট করার জন্য ব্যবহৃত হয়। Fastlane iOS এবং Android ডেভেলপমেন্টে CI/CD-র ডি-ফ্যাক্টো স্ট্যান্ডার্ড।

Fastlane কি শুধু macOS-এ কাজ করে?

Fastlane macOS, Linux এবং Windows-এ কাজ করে, কিন্তু iOS বিল্ডের জন্য Xcode এবং macOS প্রয়োজন। Android বিল্ড যেকোনো প্ল্যাটফর্মে চালানো যায়। ডেভেলপাররা লোকালি macOS ব্যবহার করে, এবং CI-তে — iOS-এর জন্য macOS এবং Android-এর জন্য Linux।

Fastlane-এর সাথে কাজ করার জন্য কি Ruby শেখা প্রয়োজন?

Fastlane-এর সাথে কাজ করার জন্য Ruby-র মৌলিক বোধগম্যতা যথেষ্ট। Fastlane Fastfile-এ Ruby-সদৃশ DSL ব্যবহার করে। সাধারণ কাজের জন্য, জেম, do-end ব্লক এবং মৌলিক সিনট্যাক্সের জ্ঞান যথেষ্ট। গভীর Ruby জ্ঞানের প্রয়োজন নেই।

Fastlane-এর কী কী বিকল্প আছে?

বিকল্পগুলির মধ্যে: Gradle Android-এর জন্য (অন্তর্নির্মিত), Xcode Cloud (Apple), Bitrise (ওয়েব ইন্টারফেস), GitHub Actions (YAML)। অ্যাকশন এবং প্লাগইনের সমৃদ্ধ ইকোসিস্টেমের কারণে Fastlane এখনও সবচেয়ে নমনীয় টুল।

Fastlane কি বড় টিমের জন্য উপযুক্ত?

হ্যাঁ, Fastlane বড় কোম্পানিগুলো ব্যবহার করে। সব অ্যাকশন এবং কনফিগারেশন ফাইল রিপোজিটরিতে ভার্সন করা হয়, এবং match রিপোজিটরি বা S3-তে সার্টিফিকেটের নিরাপদ সংরক্ষণ নিশ্চিত করে।

সারসংক্ষেপ

  • Ruby — একটি গতিশীল ভাষা যা বিল্ড অটোমেশনের জন্য Fastlane ইকোসিস্টেমের মাধ্যমে মোবাইল ডেভেলপমেন্টে ব্যবহৃত হয়
  • Fastlane — iOS এবং Android-এর জন্য CI/CD মান: 200+ অ্যাকশন, 500+ প্লাগইন, 100,000+ প্রকল্প
  • Fastfile — বিভিন্ন বিল্ড পরিস্থিতির জন্য লেনসহ Ruby-সদৃশ DSL: beta, release, screenshots
  • Match ডেভেলপারদের মধ্যে iOS সার্টিফিকেট এবং প্রোভিশনিং প্রোফাইল সিঙ্ক্রোনাইজেশনের সমস্যা সমাধান করে
  • Deliver এবং Supply — মেটাডেটা এবং স্ক্রিনশটসহ App Store এবং Google Play-তে প্রকাশনার জন্য অ্যাকশন
  • CI/CD একীভূতকরণ — Fastlane GitHub Actions, GitLab CI, CircleCI এবং Bitrise-এর সাথে কাজ করে
  • নমনীয়তা — প্রোগ্রামেবল Ruby পাইপলাইনের কারণে Fastlane Bitrise এবং Xcode Cloud-এর চেয়ে ভাল

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন