بلاگ

افشای تصاویر هواوی P40 قبل از رونمایی

هواوی اخیرا از گوشی تاشوی خود به نام میت Xs رونمایی کرد، اما نکته‌ای که بسیاری از شرکت‌کنندگان در مراسم این کمپانی چینی را به تعجب واداشت، نمونه‌های اولیه هواوی P40 بود که اسامی جدیدی روی بدنه آن به چشم …

نوشته افشای تصاویر هواوی P40 قبل از رونمایی اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

اوپو رینو ۳ پرو با دوربین سلفی دوگانه ۴۴ مگاپیکسلی معرفی شد

چند وقتی می‌شود که کمپانی اوپو از گوشی رینو ۳ پرو 5G رونمایی کرده است. با این حال این کمپانی چینی امروز تصمیم گرفته نسخه 4G گوشی محبوب خود را با دوربین سلفی ۲ گانه ۴۴ مگاپیکسلی به بازار عرضه …

نوشته اوپو رینو ۳ پرو با دوربین سلفی دوگانه ۴۴ مگاپیکسلی معرفی شد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

معاون وزیر ارتباطات: مشکل افت کیفیت و سرعت اینترنت برطرف شد

با شیوع کرونا، خانه‌نشینی بیشتر مردم و افزایش ۴۰ درصدی استفاده از اینترنت در کشور، برخی مناطق دچار افت کیفیت و سرعت شدند. وزارت ارتباطات ضرب الاجلی یک روزه به اپراتورهای اینترنت برای بهبود کیفیت خدمات اینترنت داد. اکنون رئیس سازمان …

نوشته معاون وزیر ارتباطات: مشکل افت کیفیت و سرعت اینترنت برطرف شد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

آپدیت جدید ویندوز ۱۰، سیستم را از کار می‌اندازد

کمتر زمانی پیش آمده که کاربران ویندوز ۱۰ بدون دردسر و به سادگی آپدیت‌های جدید را روی سیستم خود نصب کنند. آپدیت KB4535996 نیز به سان دیگر آپدیت‌های ویندوز ۱۰، مشکل دارد. شاهکار جدید مایکروسافت این بار از ابتدا نصب نمی‌شود …

نوشته آپدیت جدید ویندوز ۱۰، سیستم را از کار می‌اندازد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

فروش ناامید کننده گلکسی S20؛ سامسونگ کرونا را مقصر می‌داند

خانواده گلکسی اس 20 سامسونگ حدوداً چهار روز دیگر به طور رسمی در آمریکا به بازار عرضه می شود. این سری چند روز زودتر در کره جنوبی روانه بازار شده اما استقبال خریداران از آن به خاطر شیوع ویروس کرونا، …

نوشته فروش ناامید کننده گلکسی S20؛ سامسونگ کرونا را مقصر می‌داند اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

کناره‌گیری مدیرعامل نوکیا از سمت خود؛ تغییرات بزرگی در راه است

Rajeev Suri، پس از یک دهه فعالیت به عنوان مدیرعامل نوکیا سکان هدایت غول مخابراتی را به دیگران خواهد سپرد. کناره گیری وی از این سمت پس از انتشار گزارشی صورت گرفته است که به احتمال ادغام نوکیا و اریکسون …

نوشته کناره‌گیری مدیرعامل نوکیا از سمت خود؛ تغییرات بزرگی در راه است اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

شکایت سوئیس از سازمان CIA؛ جاسوسی بین المللی در پوشش کمپانی رمزنگاری

دولت سوئیس از آژانس اطلاعات مرکزی آمریکا (CIA) به دلیل جاسوسی از کشورهای مختلف از طریق یک شرکت رمزگذاری سوئیسی شکایت کرد. آژانس اطلاعات مرکزی آمریکا و آژانس اطلاعات فدرال آلمان (BND)، تحت برنامه ای به نام «Operation Rubicon» تا …

نوشته شکایت سوئیس از سازمان CIA؛ جاسوسی بین المللی در پوشش کمپانی رمزنگاری اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

تمهیدات سازمان تامین اجتماعی برای حضور فیزیکی کمتر مردم در شعبات اعلام شد

وزیر تعاون، کار و رفاه اجتماعی در صفحه توییتر خود از تمدید دفترچه‌های بیمه تامین اجتماعی خبر داد. همچنین به دستور وی، در حال حاضر بازرسی از کارگزاری‌ها و کارگاه‌ها تا پایان سال لغو شده است. «محمد شریعتمداری» در توییتی …

نوشته تمهیدات سازمان تامین اجتماعی برای حضور فیزیکی کمتر مردم در شعبات اعلام شد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

جمع‌آوری هزاران امضا برای لغو نمایشگاه SXSW به خاطر هراس از کرونا

شیوع ویروس کرونا در کشور آمریکا و جان باختن شهروندان این کشور، باعث شده تا موج جدیدی از هراس در مردم به وجود بیاید. در همین راستا یک درخواست رسمی برای لغو نمایشگاه SXSW به شهردار شهر آستین تگزاس ارائه شده …

نوشته جمع‌آوری هزاران امضا برای لغو نمایشگاه SXSW به خاطر هراس از کرونا اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

CD (Fastlane) + Android + Slack

مطمئنا اتومات سازی پروسه‌ها یکی از دغدغه‌های این دوره زمونه است ! چیزی که می‌خوایم امروز یاد بگیریم اتومات سازی پروسه “build” و رسوندن نسخه به “tester” ها و یا اعضای سازمانه .

اولین مرحله اینه که بدونیم CD چیه !

این عبارت مخفف continuous delivery ( و یا deploy که البته با هم فرق می‌کنند ولی ما اینجا یکسان در نظر می‌گیریم) هست که ویکیپدیا اونو تحویل/استقرارِ پیوسته ترجمه کرده ، هدف به طور خلاصه اینه که وقتی ما کارهای کدنویسی و تست (unit test) و … رو انجام دادیم ، بیاییم و مراحلی رو برای تحویل “برنامه” به tester ها و یا بارگذاریش روی مارکت ها انجام بدیم .

ابزاری که برای Android استفاده می‌کنیم ، fastlane و slack هستند (که البته جایگزین های بهتری هم برای fastlane هست که تاجایی که می‌دونم یا پولین یا مشکلات دیگه دارن ، خود گوگل در داکیومنت هاش fastlane رو یکی از گزینه‌های پیشنهادی ارائه داده)

ابزارِ fastlane در واقع یک سکو به زبان Ruby برای Android و IOS هست که می‌تونه کارای زیر رو بکنه :

  1. از برنامه اسکرین شات تهیه کنه (برای مارکت)
  2. نسخه بتا (آزمایشی) رو به tester ها و … برسونه
  3. نسخه release رو در مارکت‌ها بذاره (کافه بازار پشتیبانی نمی‌کنه ولی گوگل پلی چرا)
  4. برنامه شما رو اتوماتیک sign بکنه

ما اینجا با شماره 2 کار داریم !

قدم اول اینه که ابزار‌ها رو تهیه کنیم ، در ابتدای امر باید ruby رو دانلود کنیم

https://rubyinstaller.org/downloads/

حالا cmd رو باز کنید و این command رو بنویسید (اگه لینوکس یا مک دارید و دسترسی روت ندادید مسلما sudo بذارید) :

gem install fastlane -NV

از طریق command های مربوطه به مسیر پروژه برید (cd folan) و اونجا fastlane رو برای اون پروژه ایجاد کنید :

fastlane init

و همین ! الان fastlane برای پروژه شما ساخته شده و نشونه اش هم اینه که پوشه fastlane باید در کنار پوشه app و … باشه و دو تا فایل Appfile و Fastfile هم توش باشه ، شما دستورات مربوطه رو باید در فایل fastane بنویسید ولی قبلش بذارید بریم سراغ slack ، هدف ما اینه که بیاییم build مورد نظرمون رو داخل slack از این طریق بارگذاری کنیم پس باید قبلش تنظیمات slack رو انجام بدیم

بعد از اینکه slack رو راه اندازی کردیم و workplace و … رو داشتیم (که نیازی به گفتنش در اینجا نیست) باید یک token از slack بگیریم به همراه یک url که به ما اجازه اتومات سازی رو بده ، به سایت زیر برید و مراحل رو طبق عکس‌ها انجام بدید (اگه عکس لود نشده صبر کنید تا کامل لود بشه) :

https://api.slack.com/apps

در مرحله 7 به شما webhook url رو میده که برای fastlane نیاز دارید (عکس قسمتی که webhook توش هست رو نذاشتم ، شما از طریق گزینه incoming webhooks می‌تونید به کل webhook هایی که ایجاد کردید دسترسی داشته باشید) و در مرحله 9 به شما token رو میده که بازم به اون نیاز پیدا خواهید کرد !

پروسه لازم برای slack

خب حالا بریم سراغ fastlane ، کلا دستورات fastlane فرمت زیر رو دارند (خط اول اختیاریه) :

desc &quotیک سری توضیحات&quot
lane : lane_name do
some commands
end

و بدنه اصلی هم به این صورته :

defualt_platforom(:android)
platform : android do

قبل از هرکاری باید webhook رو به عنوان متغیری برای کل fastlane ایجاد کنیم پس قسمت بالا رو به این صورت تغییر میدیم :

defualt_platforom(:android)
platform : android do
before_all do
    ENV[&quotSLACK_URL] =&quotwebhook url&quot
end

endحالا یک lane برای گرفتن نسخه و آپلود اون ایجاد می‌کنیم ، قسمت upload رو به صورت تابعی جداگونه می‌نویسیم (اختیاری)

defualt_platforom(:android)
platform : android do
before_all do
    ENV[&quotSLACK_URL] =&quotweb hook url&quot
end
lane :slack_build do
  gradle(task: &quotassembleRelease&quot)
  slack(message: &quotBuild Successful!&quot)
  upload_to_slack()
end

# Add this to your Fastfile
desc &quotUpload the APK to Slack channel&quot
private_lane :upload_to_slack do |options|
  file_path = lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
  file_name = file_path.gsub(//.*//,&quot&quot)
  access_token = &quotxoxb-962620921426-966094105233-AMDOy1xTlIufyHyL1z8jmVeF&quot
  channel_name = &quotandroid&quot
  sh &quotecho Uploading &quot + file_name + &quot to Slack&quot
  sh &quotcurl https://slack.com/api/files.upload -F token=&quot&quot + access_token + &quot&quot -F channels=&quot&quot + channel_name + &quot&quot -F title=&quot&quot + file_name + &quot&quot -F filename=&quot&quot + file_name + &quot&quot -F file=@&quot + file_path
end

کاری که این دستورات انجام میدن اینه که میاد از طریق api هایی که slack در اختیارمون میذاره (شما به جای web hook url و accsess_token و channel_name باید عبارت‌های مورد نظر خودتون رو بذارید ، اولی و دومی که از فرایند‌های قبلی بدست میاد و سومی هم مشخصا اسم کانالیه که می‌خواید فایل روش آپلود بشه) اول یک پیغام Build Successful! رو در کانال مورد نظر می‌فرسته و بعد نسخه رو بارگذاری می‌کنه ، می‌تونیم بعد از تابع upload_to_slack مشخص کنیم که وقتی فرایند‌ها تموم شدند هم یک پیغام دیگه تو slack بذاره که مشخص کنه به خطا خوردیم یا نه :

after_all do |lane|
   slack(
      message: &quotsuccessful deploy :rocket:&quot
      )
   end

   error do |lane, exception|
      slack(
         message: exception.message,
         success:false
      )
   end
end

و تمام ! خروجی که در نهایت داریم اینه که دوتا پیغام یکی قبل و یکی بعد از آپلود فایل apk ما در slack گذاشته شده و فایل apk هم در اختیار کسانی که مشخص کردیم قرار می‌گیره ، برای اجرا کردن قضیه هم باید از طریق cmd یا ترمینال برید توی پوشه پروژه و اونجا اینو بنویسید :

fastlane android slack_build

خب این پروسه cd که درست کردیم رو کجا باید قرار بدیم ؟ توی قسمت ci ! حالا ci چیه ؟ من در این مقاله قصد توضیح ci رو ندارم اما خلاصه بگم ، ci به معنی Continuous integration هست که شما در اون پروسه می‌تونید تست‌هایی که برای برنامه نوشتید رو به صورت خودکار اجرا کنید (و کارای دیگه) ، ci متشکل از Pipeline (تونل/لوله و … اگه درس معماری کامپیوتر رو یادتون باشه احتمالا میدونید چرا بهش Pipeline میگن) هست که میاد مراحلی که براش مشخص کردید رو به صورت اتوماتیک اجرا می‌کنه و در انتها cd رو برای ما انجام می‌ده ، یعنی وقتی unit test ها و… اوکی بودن نسخه مورد نظر رو در دست tester ها و یا مارکت و … میذاره ، ci رو می‌تونیم با gitlab ایجاد کنیم (که ابزارشو در اختیار ما میذاره) و اون رو اگه فرصتی باشه در مقالات بعدی براتون توضیح میدم .

می‌تونید برای جمع بندی از این power point که درست کردم استفاده کنید ، لینکِ فایل fastlane که برای این مقاله درست شده رو اونجا گذاشتم .

http://s7.picofile.com/file/8389817192/CD_Android.pdf.html

نوشته CD (Fastlane) + Android + Slack اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی