Python একটি উচ্চ-স্তরের ইন্টারপ্রিটেড প্রোগ্রামিং ভাষা, যা তার সংক্ষিপ্ত সিনট্যাক্স এবং লাইব্রেরির সমৃদ্ধ ইকোসিস্টেমের জন্য পরিচিত। মোবাইল ডেভেলপমেন্টে, Python বিল্ড অটোমেশনের সহায়ক স্ক্রিপ্ট, AI/ML মডেল ট্রেইনিং এবং Django বা FastAPI-তে সার্ভার-সাইড লজিক লেখার জন্য ব্যবহৃত হয়। PYPL (2026) অনুসারে, Python প্রোগ্রামিং ভাষাগুলোর মধ্যে বিশ্বে জনপ্রিয়তায় প্রথম স্থানে রয়েছে।
মূল বিষয়
Python ডায়নামিক স্ট্রং টাইপিং এবং স্বয়ংক্রিয় মেমরি ম্যানেজমেন্ট সহ একটি ইন্টারপ্রিটেড ভাষা। এটি গুইডো ভ্যান রসাম ১৯৯১ সালে তৈরি করেছিলেন। ভাষার দর্শন (The Zen of Python) কোড পঠনযোগ্যতা প্রচার করে: «স্পষ্টতা অন্তর্নিহিততার চেয়ে ভালো», «সরলতা জটিলতার চেয়ে ভালো»। Python 3.12+ প্যাটার্ন ম্যাচিং (match-case) এবং উন্নত জেনেরিক্স সমর্থন করে।
Python-এর স্ট্যান্ডার্ড লাইব্রেরিতে JSON (json), HTTP (urllib), আর্কাইভ (zipfile), রেগুলার এক্সপ্রেশন (re) এবং ডেটাবেস (sqlite3) নিয়ে কাজ করার মডিউল অন্তর্ভুক্ত। থার্ড-পার্টি — PyPI-তে হাজার হাজার প্যাকেজ যার মোট ডাউনলোড ৫০০ বিলিয়নেরও বেশি। PyPI (Python Package Index) Python প্যাকেজের সবচেয়ে বড় রিপোজিটরি।
Python C-তে লেখা CPython ইন্টারপ্রিটার ব্যবহার করে। বিকল্প বাস্তবায়ন: PyPy (JIT কম্পাইলেশন, বিশুদ্ধ Python-এর জন্য ২–৫ গুণ দ্রুত), Cython (Python-কে C-তে কম্পাইল করা), Numba (সংখ্যাসূচক কম্পিউটিংয়ের জন্য JIT)। মোবাইল স্ক্রিপ্টের জন্য CPython যথেষ্ট — অটোমেশন কাজের জন্য ইন্টারপ্রিটেশন স্পিড গুরুত্বপূর্ণ নয়।
Python 2-এর সমর্থন ২০২০ সালে শেষ হয়েছে। সমস্ত আধুনিক প্রজেক্ট Python 3 ব্যবহার করে। বর্তমান সংস্করণ 3.13 (2025) উন্নত JIT কম্পাইলার এবং ফ্রি-থ্রেডেড Python-এর পরীক্ষামূলক সমর্থন সহ। মোবাইল ডেভেলপমেন্টের জন্য, সংস্করণ 3.11–3.12 স্থিতিশীল এবং সমস্ত প্রধান লাইব্রেরির সাথে সামঞ্জস্যপূর্ণ।
| সংস্করণ | বছর | মূল উদ্ভাবন |
|---|---|---|
| Python 3.6 | 2016 | f-strings, ভেরিয়েবলের জন্য টাইপ হিন্ট |
| Python 3.8 | 2019 | ওয়ালরাস অপারেটর (:=), শুধুমাত্র-পজিশনাল প্যারামিটার |
| Python 3.10 | 2021 | match-case, নির্ভুল টাইপ, Union অপারেটর |
| Python 3.11 | 2022 | CPython ত্বরণ ১০–৬০%, এক্সেপশন গ্রুপ |
| Python 3.12 | 2023 | টাইপিং-এ ফাংশন ওভারলোডিংয়ের সমর্থন |
| Python 3.13 | 2025 | JIT কম্পাইলার, ফ্রি-থ্রেডেড মোড |
Python মোবাইল ডেভেলপমেন্টে অটোমেশন স্ক্রিপ্টের জন্য প্রাথমিক ভাষা। এটি APK এবং IPA বিল্ডিং, স্ট্রিং রিসোর্স প্রসেসিং, লেআউট থেকে স্ক্রিন জেনারেট এবং অ্যাপ স্টোরে ডিপ্লয় করার জন্য ব্যবহৃত হয়। Bitrise (2025) অনুসারে, মোবাইল অ্যাপ্লিকেশনের ৬০% এর বেশি CI/CD পাইপলাইনে Python স্টেপ অন্তর্ভুক্ত।
সবচেয়ে সাধারণ পরিস্থিতি — Fastlane Ruby সহ সব প্রয়োজন কভার করে না, এবং Python এটি পূরক করে: জটিল ইমেজ প্রসেসিং লজিক, App Store Connect API নিয়ে কাজ, Xcode রিপোর্ট পার্সিং এবং স্ক্রিনশট জেনারেশন। Python স্ক্রিপ্ট Fastfile-এ sh স্টেপের মাধ্যমে বা সরাসরি GitHub Actions-এ কল করা হয়।
# অ্যাপ স্ক্রিনশট স্বয়ংক্রিয় রিসাইজের জন্য স্ক্রিপ্ট
import os
from PIL import Image
def resize_screenshots(input_dir: str, output_dir: str, size: tuple) -> None:
"""সমস্ত PNG স্ক্রিনশট প্রয়োজনীয় স্টোর আকারে রিসাইজ করে।"""
for filename in os.listdir(input_dir):
if not filename.lower().endswith(".png"):
continue
path = os.path.join(input_dir, filename)
img = Image.open(path)
resized = img.resize(size, Image.LANCZOS)
out_path = os.path.join(output_dir, filename)
resized.save(out_path, "PNG")
print(f"Resized {filename} -> {out_path}")
resize_screenshots("screenshots_raw", "screenshots_resized", (1242, 2208))উদাহরণে, স্ক্রিপ্ট ফোল্ডারে থাকা সমস্ত PNG ফাইলের মধ্য দিয়ে যায়, সেগুলোকে LANCZOS ফিল্টার দিয়ে সর্বোত্তম মানের জন্য iPhone 6.5" আকারে (1242x2208) রিসাইজ করে। print-এ f-string ফাইলনেম প্রতিস্থাপন করে। এই স্ক্রিপ্ট স্টোর প্রস্তুতির সময় ম্যানুয়াল কাজের ঘণ্টা বাঁচায়।
Android-এর জন্য, Python স্ট্রিং রিসোর্স (strings.xml) প্রসেসিং, বিভিন্ন স্ক্রিন ডেনসিটির জন্য dimen ফাইল জেনারেট এবং ভেক্টর গ্রাফিক্স রূপান্তরে কাজে লাগে। LXML এবং xml.etree.ElementTree Android XML রিসোর্স পার্স এবং পরিবর্তন করার অনুমতি দেয়।
# অনুবাদ সহ CSV ফাইল থেকে strings.xml জেনারেট করা
import csv
from xml.etree import ElementTree as ET
from xml.dom import minidom
def csv_to_strings(csv_path: str, lang: str) -> str:
root = ET.Element("resources")
with open(csv_path, "r") as f:
reader = csv.DictReader(f)
for row in reader:
el = ET.SubElement(root, "string")
el.set("name", row["key"])
el.text = row[lang]
rough = ET.tostring(root, encoding="unicode")
parsed = minidom.parseString(rough.encode())
return parsed.toprettyxml(indent=" ")
print(csv_to_strings("translations.csv", "ru"))Python মেশিন লার্নিংয়ের জন্য প্রাথমিক ভাষা। TensorFlow, PyTorch, scikit-learn, JAX এবং Hugging Face Transformers Python-এর জন্য লেখা। মোবাইল ডেভেলপাররা Python ব্যবহার করে মডেল ট্রেইন করে, যা পরে অন-ডিভাইস এক্সিকিউশনের জন্য TFLite (Android) বা Core ML (iOS)-এ রূপান্তরিত হয়।
TensorFlow Lite হল Google-এর অন-ডিভাইস মেশিন লার্নিং ফ্রেমওয়ার্ক। Python-এ ট্রেইন করা মডেল TensorFlow Converter-এর মাধ্যমে .tflite-এ রূপান্তরিত হয় এবং Interpreter API-র মাধ্যমে Android অ্যাপে লোড হয়। iOS-এর জন্য, অনুরূপ পাইপলাইন PyTorch -> Core ML ব্যবহার করে।
# অঙ্গভঙ্গি শ্রেণীবিভাগের জন্য একটি সহজ মডেলের প্রশিক্ষণ
import tensorflow as tf
from tensorflow import keras
model = keras.Sequential([
keras.layers.Input(shape=(64, 64, 3)),
keras.layers.Conv2D(32, (3, 3), activation="relu"),
keras.layers.MaxPooling2D(2, 2),
keras.layers.Conv2D(64, (3, 3), activation="relu"),
keras.layers.Flatten(),
keras.layers.Dense(128, activation="relu"),
keras.layers.Dropout(0.2),
keras.layers.Dense(4, activation="softmax")
])
model.compile(optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"])
# প্রশিক্ষণের পর TFLite-এ রূপান্তর
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with open("gesture_model.tflite", "wb") as f:
f.write(tflite_model)
print(f"Model size: {len(tflite_model)} bytes")Sequential মডেলে পুলিং সহ দুটি কনভোলিউশনাল লেয়ার (Conv2D), একটি সম্পূর্ণ সংযুক্ত লেয়ার (Dense) এবং রেগুলারাইজেশনের জন্য Dropout অন্তর্ভুক্ত। রূপান্তরের পর, .tflite মডেল মূল SavedModel থেকে ৪–৬ গুণ কম জায়গা নেয় এবং মোবাইল CPU বা GPU-তে চলে।
আধুনিক পদ্ধতি — TensorFlow Federated বা MLX (Apple) দিয়ে সরাসরি ডিভাইসে ট্রেইনিং। Python স্ক্রিপ্ট আর্কিটেকচার নির্ধারণ করে, যখন ট্রেইনিং সার্ভারে না পাঠিয়ে ব্যবহারকারীর ডেটাতে চলে। এটি গোপনীয়তা উন্নত করে তবে বাস্তবায়ন আরও জটিল। বেশিরভাগ প্রজেক্ট ক্লাসিক পাইপলাইন ব্যবহার করে: Python ট্রেইনিং -> TFLite -> অন-ডিভাইস ইনফারেন্স।
Python মোবাইল অ্যাপ ব্যাকএন্ডের জন্য একটি জনপ্রিয় পছন্দ। Django REST Framework (DRF) এবং FastAPI দ্রুত REST API বা GraphQL সার্ভার তৈরি করার অনুমতি দেয়। Python ব্যাকএন্ড মোবাইল ক্লায়েন্ট থেকে অনুরোধ প্রক্রিয়া করে, প্রমাণীকরণ পরিচালনা করে এবং WebSocket-এর মাধ্যমে ডেটা সিঙ্ক্রোনাইজ করে।
FastAPI async সমর্থন, স্বয়ংক্রিয় OpenAPI স্পেসিফিকেশন জেনারেশন এবং Pydantic-এর মাধ্যমে ভ্যালিডেশন সহ একটি আধুনিক ফ্রেমওয়ার্ক। FastAPI-র পারফরম্যান্স Node.js এবং Go-র সমান — একক কোরে ১০,০০০ রিকোয়েস্ট/সেকেন্ড পর্যন্ত। মোবাইল ব্যাকএন্ডের জন্য, FastAPI ডেভেলপমেন্ট স্পিড এবং বিল্ট-ইন ডকুমেন্টেশনের জন্য বেছে নেওয়া হয়।
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List
import sqlite3
app = FastAPI(title="Mobile App API")
class UserCreate(BaseModel):
username: str
email: str
avatar_url: str | None = None
@app.post("/users", status_code=201)
async def create_user(payload: UserCreate):
conn = sqlite3.connect("app.db")
cur = conn.execute(
"INSERT INTO users (username, email) VALUES (?, ?)",
(payload.username, payload.email)
)
conn.commit()
user_id = cur.lastrowid
conn.close()
return {"id": user_id, "username": payload.username}
@app.get("/users/{user_id}")
async def get_user(user_id: int):
conn = sqlite3.connect("app.db")
row = conn.execute(
"SELECT id, username, email FROM users WHERE id = ?",
(user_id,)
).fetchone()
conn.close()
if not row:
raise HTTPException(status_code=404, detail="User not found")
return {"id": row[0], "username": row[1], "email": row[2]}Pydantic মডেল UserCreate ইনপুট ডেটা ভ্যালিডেট করে: username এবং email আবশ্যক স্ট্রিং, avatar_url ঐচ্ছিক। অ্যাসিঙ্ক্রোনাস এন্ডপয়েন্ট (async def) ডেটাবেসের অপেক্ষায় সার্ভার ব্লক করে না। সফল ইউজার তৈরি হলে স্ট্যাটাস কোড ২০১ ফেরত দেওয়া হয়।
Python FastAPI WebSocket বা websockets লাইব্রেরির মাধ্যমে WebSocket সমর্থন করে। চ্যাট, রিয়েল-টাইম নোটিফিকেশন এবং সহযোগিতামূলক সম্পাদনার জন্য, WebSocket সর্বোত্তম ট্রান্সপোর্ট। FastAPI অ্যাসিঙ্ক্রোনাস PostgreSQL অ্যাক্সেসের জন্য asyncpg এবং ক্যাশিংয়ের জন্য aioredis ব্যবহার করে।
Python দ্রুত প্রোটোটাইপিংয়ের জন্য অপরিহার্য। একজন ডেভেলপার ১৫ মিনিটে Flask-এ প্রোটোটাইপ API লিখতে পারে এবং প্রোডাকশনের জন্য Kotlin/Swift-এ বাস্তবায়নের আগে ব্যবহারকারীদের সাথে আইডিয়া টেস্ট করতে পারে। প্রোটোটাইপ পর্যায়ে ত্রুটির খরচ ন্যূনতম, এবং হাইপোথিসিস টেস্টিংয়ের সময় সপ্তাহ থেকে ঘন্টায় নেমে আসে।
প্রোটোটাইপিং টুল: Flask (ন্যূনতম REST), Streamlit (ড্যাশবোর্ড), Jupyter Notebooks (ডেটা বিশ্লেষণ), Flet এবং Kivy (মোবাইল MVP)। Python প্রোটোটাইপ প্রায়শই প্রোডাকশন বাস্তবায়নের জন্য স্পেসিফিকেশন হয়ে ওঠে: ডেটা টাইপ, বিজনেস লজিক এবং টেস্ট Kotlin বা Swift-এ পোর্ট করা হয়।
Python Locust-এর মাধ্যমে মোবাইল API-র লোড টেস্টিংয়ের জন্য ব্যবহৃত হয় — হাজার হাজার ব্যবহারকারী সিমুলেশনের জন্য একটি ফ্রেমওয়ার্ক। Locust স্ক্রিপ্ট ব্যবহারকারীর আচরণের পরিস্থিতি বর্ণনা করে, এবং ওয়েব ইন্টারফেস RPS, লেটেন্সি এবং পার্সেন্টাইল দেখায়।
from locust import HttpUser, task, between
class MobileApiUser(HttpUser):
wait_time = between(1, 5)
@task(2)
def get_posts(self):
self.client.get("/api/v1/posts?page=1")
@task(1)
def create_post(self):
self.client.post("/api/v1/posts", json={
"title": "Test",
"body": "Content"
})@task(2) ওজন নির্দিষ্ট করে — GET /posts রিকোয়েস্ট POST /posts রিকোয়েস্টের তুলনায় দ্বিগুণ বার নির্বাহিত হয়। wait_time রিকোয়েস্টের মধ্যে ১–৫ সেকেন্ডের বিরতি সিমুলেট করে। Locust কমান্ড লাইন থেকে শুরু হয় এবং পোর্ট ৮০৮৯-এ ওয়েব ইন্টারফেসের মাধ্যমে রিয়েল-টাইম ফলাফল দেখায়।
Python এবং মোবাইল নেটিভ ভাষা ভিন্ন সমস্যা সমাধান করে। Kotlin এবং Swift UI, নেভিগেশন এবং সরাসরি প্ল্যাটফর্ম API অ্যাক্সেসের জন্য। Python অটোমেশন, AI/ML, সার্ভার লজিক এবং প্রোটোটাইপিংয়ের জন্য। আসুন মূল প্যারামিটার তুলনা করি।
| প্যারামিটার | Python | Kotlin / Swift |
|---|---|---|
| UI অ্যাপ্লিকেশন | না (Kivy — বিশেষায়িত) | প্রাথমিক উদ্দেশ্য |
| বিল্ড অটোমেশন | প্রাথমিক টুল | বিরল |
| AI/ML ট্রেইনিং | শিল্পের প্রাথমিক ভাষা | শুধুমাত্র ইনফারেন্স |
| সার্ভার ব্যাকএন্ড | Django, FastAPI, Flask | Ktor, Vapor (কম জনপ্রিয়) |
| ডেভেলপমেন্ট গতি | উচ্চ (কম কোড) | মধ্যম |
| পারফরম্যান্স | নিম্ন (ইন্টারপ্রিটেড) | উচ্চ (JIT/নেটিভ) |
| ডিভাইস API অ্যাক্সেস | Chaquopy/BeeWare-এর মাধ্যমে | সরাসরি (১০০% API) |
সর্বোত্তম আর্কিটেকচার: Python AI/মডেল ট্রেইনিং, CI/CD স্ক্রিপ্ট এবং সার্ভার সাইডের জন্য; Kotlin/Swift UI এবং নেটিভ ইন্টিগ্রেশনের জন্য।
প্রথম ভুল — ভুল Python সংস্করণ ব্যবহার করা। macOS-এ Python 3.9 পূর্বেই ইনস্টল থাকে, কিন্তু অটোমেশন স্ক্রিপ্টের pyenv বা .python-version-এর মাধ্যমে নির্ধারিত সংস্করণ প্রয়োজন। 3.9 এবং 3.12-এর পার্থক্য সিনট্যাক্স ভাঙতে পারে (যেমন, match-case শুধুমাত্র 3.10 থেকে উপলব্ধ)।
দ্বিতীয় সাধারণ ভুল — ভার্চুয়াল এনভায়রনমেন্ট উপেক্ষা করা। Python নির্ভরতাগুলো প্রজেক্টের মধ্যে বিশ্বব্যাপী সংঘর্ষে লিপ্ত হয়। বিচ্ছিন্নতার জন্য venv বা poetry ব্যবহার করুন। পুনরুৎপাদনযোগ্য বিল্ডের জন্য requirements.txt বা pyproject.toml ফাইল রিপোজিটরিতে থাকা উচিত।
ত্রুটি হ্যান্ডলিংয়ের অভাব — তৃতীয় সাধারণ সমস্যা। একটি স্ক্রিপ্ট যা ফাইলের অনুপস্থিতি বা নেটওয়ার্ক ত্রুটিতে ক্র্যাশ হয়, পুরো CI/CD পাইপলাইন বন্ধ করে দেয়। try-except-finally, logging মডিউলের মাধ্যমে লগিং ব্যবহার করুন এবং ত্রুটিতে নন-জিরো কোড ফেরত দিন (sys.exit(1))।
Python 2 এবং Python 3 সিনট্যাক্স মিশ্রণ — আরেকটি ভুল। বন্ধনী ছাড়া print, পুরনো except Exception, e এবং xrange Python 2-এ কাজ করত কিন্তু Python 3-এ নয়। স্ট্যাটিক টাইপ বিশ্লেষণের জন্য flake8 এবং mypy-র মাধ্যমে কোড পরীক্ষা করুন।
# সেরা অভ্যাস: অটোমেশন স্ক্রিপ্টে ত্রুটি হ্যান্ডলিং
import sys
import logging
from pathlib import Path
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
log = logging.getLogger(__name__)
def build_apk(project_dir: str) -> bool:
path = Path(project_dir)
if not path.exists():
log.error(f"Directory {project_dir} not found")
return False
try:
# এখানে বিল্ড কমান্ড
log.info("Build started")
return True
except Exception as e:
log.exception(f"Build failed: {e}")
return False
if __name__ == "__main__":
success = build_apk("android/app")
sys.exit(0 if success else 1)সচরাচর জিজ্ঞাসা
হ্যাঁ, ফ্রেমওয়ার্ক Kivy, BeeWare এবং Chaquopy (Android-এর জন্য)-এর মাধ্যমে। তবে, Kotlin/Swift-এ নেটিভ অ্যাপ্লিকেশন দ্রুত চলে এবং প্ল্যাটফর্ম API-তে সম্পূর্ণ অ্যাক্সেস প্রদান করে। Python সাধারণত প্রোটোটাইপিং এবং সহায়ক টুলের জন্য ব্যবহৃত হয়।
Python IPA/APK বিল্ডিং, টেস্ট রিপোর্ট জেনারেশন, লগ প্রসেসিং, স্ক্রিন রিসাইজিং, রিসোর্স রূপান্তর এবং Fastlane Python প্লাগইনের মাধ্যমে Firebase App Distribution-এ ডিপ্লয়মেন্ট অটোমেট করে।
মডেল Python (TensorFlow, PyTorch)-এ ট্রেইন করা হয়, তারপর অন-ডিভাইস ইনফারেন্সের জন্য TFLite বা Core ML-এ রূপান্তরিত হয়। Kotlin/Swift-এ নেটিভ ML লাইব্রেরি প্রস্তুত মডেল লোড করে, যখন Python ট্রেইনিং এবং এক্সপোর্টের দায়িত্ব নেয়।
মোবাইল ব্যাকএন্ডের জন্য, Python (Django/FastAPI) একটি চমৎকার পছন্দ। এটি ডেভেলপমেন্টে দ্রুত এবং লাইব্রেরির সমৃদ্ধ ইকোসিস্টেম রয়েছে। Kotlin (Ktor) এবং Swift (Vapor) ভালো পারফরম্যান্স এবং টাইপ সুরক্ষা প্রদান করে।
Python একটি ইন্টারপ্রিটেড ভাষা হিসাবে C++ এবং Kotlin-এর চেয়ে ধীর। কিন্তু বিল্ড স্ক্রিপ্ট, কোড জেনারেশন এবং প্রোটোটাইপিংয়ের জন্য, Python-এর গতি গুরুত্বপূর্ণ নয়। AI/ML-এর জন্য, মডেল ট্রেইনিং GPU সার্ভারে করা হয়, ডিভাইসে নয়।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।