بسته آموزش برنامه نویسی اندروید با کاتلین و استاندارد گوگل در قالب 6 فصل تهیه شده و در جریان آن ۷ اپلیکیشن ساخته میشود. پس به نوعی یک آموزش مفهوم محور و همزمان پروژه محور محسوب میشود. همچنین شما آموزش اندروید با استاندارد گوگل (+) را از نقطه صفر و با پروژههای استاندارد گوگل فرا میگیرید. وقتی توسعه اندروید را با استاندارد گوگل فرابگیرید احتمالا در برای کسب مدرک در آزمونهای بین المللی اندروید نیز کار سادهتری در پیش دارید.
*تذکر: به تاریخ روزآمدی آموزش دقت کنید. این آموزش برای یادگیری اصول برنامه نویسی اندروید تحت معماری MVVM مناسب است و ممکن است برخی تابعها و کلاسها در این لحظه تغییر کرده و نیازمند جستجو و تطبیق شما باشد.
سرفصلها
تولید این بسته در همرویش یکسال به طول انجامید. در طول این بکسال، هر فصل که تکمیل شد منتشر کردیم. اکنون دست شما کاملا باز است: میتوانید کل بسته را یکجا تهیه کنید. یا میتوانید هر یک از 6 فصل را که نیاز داشته باشید به صورت مستقل از لینکهای زیر تهیه کنید.
- یکم: از صفر تا انتشار اولین اپ (رایگان)
- دوم: طراحی UI
- سوم: Navigation
- چهارم: چرخه حیات
- پنجم- معماری MVVM
- ششم- پایگاه داده Room
همچنین پس از تماشای این بسته دو عنوان پیشرفته زیر نیز به شما پیشنهاد میشود:
- آموزش رتروفیت و ریسایکلر در اندروید با MVVM و کاتلین (+)
- طراحی ویوی سفارشی (Custom View) در اندروید و کاتلین (+)
این بسته در یک نگاه
برای آشنایی با محتوای بسته آموزش برنامه نویسی اندروید با کاتلین، لازم است که موارد زیر را در نظر بگیرید:
1- اول حتما فیلم معرفی این بسته در بالای این صفحه را ببینید. در 7 دقیقه شما را با کل بسته آشنا میکند.
2- برای آگاهی از مهمترین ویژگیهای این بسته توضیح ادامه را مطالعه کنید.
3- اگر توضیح پایین راضیتان نکرد و در هر مورد جزئیات بیشتری میخواهید، کافی است که روی نام هر فصل در فهرست بالا کلیک کنید. چون هر فصل از این بسته به صورت مستقل هم منتشر شده، در صفحه آن میتوانید جزئیات خیلی زیادی از هر فصل را مطالعه کنید.
در هر فصل چه میآموزیم؟
ما از نقطه صفر شروع کردیم. فرض کردیم شما با توسعه اندروید کاملا ناآشنا هستید و تنها مبانی کاتلین (تعریف متغیر، شرط و حلقه و تعریف تابع) را میشناسید.
فصل اول یک شروع سریع صفر تا صد داریم.
اول یاد میگیریم که چطور اندروید استودیو را به صورت استاندارد نصب کنیم. بعد اجرای پروژه روی دستگاه مجازی و نیز واقعی را با هم یاد میآموزیم. در ادامه یک بازی جذاب پرتاب تاس را از صفر با هم می سازیم. از این بازی خروجی APK میگیریم. در نهایت APK خود را برای ارسال به مارکتهایی مثل گوگل پلی و کافه بازار امضا میکنیم.
در فصل دوم با UI کار میکنیم.
با طراحی UI در اندروید و زبان XML آشنا میشویم. ویجت های اصلی مثل TextView و ImageView را میسازیم. همچنین مفهوم Data Binding در این فصل شرح داده میشود.
فصل سوم با Navigation کار کردیم.
با کتابخانه Navigation آشنا میشویم. یاد میگیریم که چطور نقشه کل اپلیکیشن و صفحههای آن را در این گراف طراحی کنیم. ارتباط بین صفحهها را مدلسازی میکنیم. با روش جدید گوگل در ساخت منوی کشویی (Nagvigation Drawer) و منوی اصلی (Main Menu) آشنا میشویم. میآموزیم که چطور دادهها را از یک صفحه به صورت Bundle به صفحه دیگر جایجا کنیم. یاد میگیریم که چطور با Intent های ضمنی (implicit) و صریح (explicit) کار کنیم. یاد میگیریم که چطور یک محتوا را با باز کردن اکتیویتی دیگری از اپلیکیشن دیگر اشتراک گذاری کنیم.
در فصل چهارم با LifeCycle کار کردیم.
وقتی یک اکتیویتی به پس زمینه میرود چه میشود؟ چه وقت اکتیویتی از بین میرود؟ دادههای آن چه میشود؟ وقتی که کاربر گوشی را بچرخاند چه اتفاقی برای اکتیویتیها میافتد؟ چطور باید چرخه حیات یک اکتیویتی را مدیریت کرد؟ چطور باید اجرای یک موسیقی یا فیلم را مدیریت کرد؟ چطور این اتفاقات را با Log پایش کنیم؟ این ها مواردی هستند که در این فصل یاد میگیریم.
در فصل پنجم وارد معماری MVVM شدیم.
با یادگیری مفاهیم بنیادی معماری MVVM در فصلهای گذشته، حالا در این فصل از مجموعه فیلم آموزش اندروید وارد معماری میشویم. یک اپ خوب اپلیکیشنی است که پشتیبانی و روزآمدسازی آن شیرین و راحت باشد. و این شدنی نیست مگر اجزای اپ مثل اجزای یک خانه به درستی از هم تفکیک شوند. به این منظور در این فصل با معماری استاندارد گوگل یعنی معماری MVVM آشنا میشویم. با مفهوم View-Model و مفهوم LiveData آشنا میشویم. با نحوه ارتباط اجزای اپلیکشین آشنا میشویم و یک اپ را با هم معماری میکنیم.
در فصل ششم معماری اپ را با افزودن دیتابیس کامل می کنیم.
تا پیش از این کار با پایگاه داده یک فرآیند دستی و ناخوشایند بود. اما با معرفی کتابخانه Room گوگل این کار را شیرین کرده است. در این فصل از پایه با مفهوم پایگاه داده آشنا میشویم. سپس گام به گام با اجزای پایگاه داده Room شامل Entity و DAO و سازنده آشنا خواهیم شد. یک پروژه واقعی مجهز به پایگاه داده خواهیم ساخت. برای عملکرد اپلیکیشن تست نویسی میکنیم. با کدنویسی چند نخی در اندروید آشنا میشویم. با مفهوم Coroutine آشنا میشویم. در نهایت اپلیکشین ما میتواند دادهها را در یک دیتابیس SQLite ذخیره و از آن واکشی کند.
این آموزش بی نظیر است زیرا :
- یک آموزش برنامه نویسی اندروید با سرفصلها و پروژههای استاندارد گوگل است.
- یک آموزش برنامه نویسی اندروید با کاتلین (زبان اول اندروید از دید گوگل) است.
- برنامه نویسی اندروید را با معماری MVVM (معماری توصیه شده گوگل) می آموزید.
- این مجموعه فیلم آموزش اندروید یک تدوین و زمانبندی حرفه ای دارد تا خسته نشوید.
- علاوه بر کد نویسی، همه مفاهیم پایه با شکل و پویانمایی توضیح داده می شود.
- در طول این آموزش، 7 پروژه اندرویدی جذاب توسعه میدهید.
آموزههای اصلی
- نصب اندروید استودیو
- اجرای پروژه اندروید روی دستگاه مجازی و حقیقی
- آشنایی بنیادی با Gradle
- تولید خروجی APK امضا شده از پروژه اندروید
- آشنایی با View ها و Layout های اصلی اندروید
- طراحی رابط کاربری با XML
- آشنایی با مفهوم Data Binding
- طراحی منعطف UI بر اساس Ratio و Chain
- طراحی نقشه اپلیکشین با گراف Navigation
- حرکت بین صفحههای اپ به صورت شرطی
- انتقال داده بین صفحه ها و اجرای انواع Intent
- طراحی Navigation Drawer و منو به روش جدید گوگل
- کار با Toast و Log و Snackbar در اندروید
- آشنایی با کلاس Application و کتابخانه Timber
- مدیریت چرخش گوشی و ذخیره موقت داده در Ram
- آموختن توسعه اپلیکیشن با اصول معماری MVVM
- مفهوم View-Model و کاربرد آن
- مفهوم UI Controller و کاربرد آن
- معنی LiveData و کاربرد آن
- معنی ModelViewProvider
- کار با پایگاه داده در اندروید و کار با Room
- آشنایی با تست نویسی در اندروید
- نمایش استرینگ های HTML با CDATA
- آشنایی با StringBuilder و Html در اندروید
- درک مفهوم Database و مفهوم SQL
- چند-نخی یا Multithreading در اندروید
- مفهوم Coroutine در کاتلین
- مفهوم Process Shutdown
- دیباگ و Debugging در اندروید
پیشنیاز
آشنایی مقدماتی با برنامه نویسی کاتلین (تعریف متغیر، ساختارهای شرط و حلقه، تعریف تابع)
عبارتهای کلیدی
آموزش برنامه نویسی اندروید با کاتلین – اندروید با زبان کاتلین – فیلم اندروید با کاتلین – آموزش اندروید با استاندارد گوگل – پایگاه داده در اندروید – آموزش Navigation در اندروید – حرکت بین صفحه ها در اندروید – اندروید با کاتلین از صفر – طراحی UI در اندروید – دیتابایندینگ در اندروید – مفهوم intent – معماری MVVM – آموزش اندروید با معماری MVVM – معماری اندروید – اندروید با معماری MVVM
رضا (خریدار محصول) –
سلام به شما ممنون
بله درسته من این ارور رو حل کردم به دلیل وی پی ان بود که فقط واسه اپ های دارای پروکسی کار میکرد ، و چون اندروید استودیو جز این اپ ها نیست
کار نمیکرد
تغییر دادم الان به درستی ران میشه
مصطفی آصفی –
سلام مجدد. خیلی ممنونم که اطلاع دادین.
رضا (خریدار محصول) –
سلام وقت بخیر
این ارور رو دارم زیاد دنبال راه حل بودم پیدا نشد
اگه امکانش هست شما نظری بدید
https://s2.uupload.ir/files/img_20230115_153545_393_zy7d.png
*هر پروژه فرقی نداره میزنم ران بشه این ارور رو میده .
* ی سری ها میگن به دلیل فیلتر شکن هست قدرت کافی نداره
مصطفی آصفی –
سلام به شما. بله در کل اغلب خطاهای مرتبط با گریدل که ما تو ایران داریم با نت خوب و اتصال آنلاین به گوگل حل میشه. با توجه به این که دسترسی به سیستم شما نداریم چند کار هست که به ترتیب امتحان کنید تا ببینیم کدوم جواب میده. لینک ها رو پایین می گذارم براتون ولی حتما استفاده از وی پی ان مناسب برای دسترسی به سرورهای گوگل لازمه هر چند شنیدم به زودی تحریم های نرم افزاری از اون سمت لغو میشن:
https://stackoverflow.com/a/57242896/18386706
https://stackoverflow.com/a/68872760/18386706 (تو این لینک البته نسخه متناسب خودتون رو درج کنید)
https://stackoverflow.com/questions/67027822/flutter-app-not-running-could-not-find-aapt2-windows-jar
https://stackoverflow.com/a/57242896/18386706
رضا (خریدار محصول) –
سلام استاد آصفی
هنوز ندیدم ولی مثل مابقی آموزش هاتون عالیِ صدرصد
من میخوام آموزش ها رو دانلود کنم باید یک بزنم دانلود بشه بعد کلا از مرورگر بیام بیرون بعد دوباره برگردم و بزنم بعدی دانلود بشه
این خیلی زمان میبره اگه بشه ی لینک بزارین که همشو یک جا بتونیم بارگیری کنیم خوب میشه
(فصل یک و دو رو بارگیری کردم)
مصطفی آصفی –
سلام و ممنون از لطف شما. بله پیشنهاد درستیه به واحد فنی ارجاع میدم.
ارسطو محمدقلی سنقری (خریدار محصول) –
سلام و دورد
این آموزش خیلی خوب و عالی با بیان عالی و قدرت انتقال مطالب بالا به دانشجو واقعا بی نظیره.
البته که این آموزش رو باید وقتی ببینید که حد اقل یک یا 2 اپ به شیوه قدیمی داشتید و تازه متوجه میشید که چقدر این آموزش به کار شما میاد.
من آموزش خریدم و استفاده کردم و کامل نگاه کردم.بسیار خوب بود.سرعت آموزش و توضیحات عالی بود بیان مطالب خوب بود و مراجع معرفی شده بود و خیلی به من در یادگیری این معماری کمک کرد.
تنها کمبود این آموزش بخش های اتصال آنلاین و دریافت و مدیریت داده ها و جیسون و … هست که میشه گفت منتظرش بودم که گویا هنوز تکمیل نشده
امید وارم این آموزش با معماری mvvm به این فصل ها اضافه بشه
با تشکر
مصطفی آصفی –
سلام و سپاس از لطفتون. خوشحالم که آموزش مفید بوده و ممنونم که برای ارسال نظر و انرژی مثبت خودتون وقت گذاشتین. بخش اتصال آنلاین و جیسون رو تو آموزش پایین می تونید ببینید که با داوری بنده تولید شده:
آموزش رتروفیت در اندروید (+)
mostafa ahmadi (خریدار محصول) –
سلام ، خواستم تشکر کنم از آموزش خوبتون ،لطفا اگر امکانش هست آموزش جت پک کامپوز را هم قرار دهید. با تشکر ، ان شاءا… سالم باشین
مصطفی آصفی –
سلام و سپاس. یادداشت کردم ولی پیشنهاد می کنم اگه دوست دارین یه الزام برای یادگیری این موضوع برای خودتون قرار بدین پیشنهاد تدریس این موضوع رو خودتون به هم رویش ارسال کنید. در این صورت مثل مدرسان دیگه راهنمایی بنده رو هم خواهید داشت.
مهدی –
سلام به مشاور عزیز
با زبان کاتلین میشه نرمافزار ویندوز ساخت یا کاتلین فقط برای اندرویده
زبان کاتلین نیاز به سخت افزار قوی داره یا سیستم ضعیف هم کفایت میکنه
سیستم من این مشخصات داره cpu دو هسته با فرکانس ۲/۷ ddr3
رم اجرایی ۴ گیگ ddr3
با این سیستم میشه کاتلین کار کنم
مصطفی آصفی –
سلام به شما. در مورد سوال اولتون بله compose platform (+) به همین منظور توسعه داده شده. در کل با کاتلین شما اپ دسکتاپ، موبایل یا وب می تونید درست کنید. شبیه جاوا.
در مورد سخت افزار ببینید خود کاتلین پردازش زیادی نیاز نداره. اما ممکنه شما بخواید با کاتلین تو اندروید استودیو کار کنید. در این صورت اندروید استودیو تو سیستمی که گفتین یه مقدار کند میشه. در مورد اپ دسکتاپ من امتحان نکردم ولی اونم چون احتمالا IntelliJ Idea می خواد شاید کمی سنگین باشه برای ۴ گیگ رم. با این حال شما به حرف من اکتفا نکنید. شیرچه بزنید ببینید میشه یا نه. مثلا این فیلم (+) رو ببینید و بعد سعی کنید با نصب جت برینز IntelliJ Idea اجراش کنید. ضمنا شنیدم که نسخه لایو هم برای کامپوز بیرون اومده. گوگل کنید.
مصطفی آصفی –
سلام به شما جناب طهماسب عزیز. ممنون از لطف شما. از این بسته دو عنوان پیشرفته هم با هدایت بنده توسط دو دوست دیگه منتشر شده. با زحمت زیاد و داوری سختگیرانهای این دوستان این دو دوره رو تهیه کردن. لطفا بررسی و اگه مناسب دیدین حمایتشون بفرمایید:
آموزش رتروفیت برای اتصال به اینترنت در اندروید با کاتلین و استاندارد گوگل (+)
آموزش ساخت ویوهای سفارشی در اندروید با کاتلین و استاندارد گوگل (+)
حسن طهماسب (خریدار محصول) –
سلام و درود استاد ما منتظر دوره پیشرفته هستیم اصولی ترین دوره ای بود که من تو این موضوع دیدم حیفه نیمه کاره تموم شه موفق باشید استاد
Ho33ein –
سلام خسته نباشید استاد
استاد موقع Running gradle task assembledebug
با این ارور زیر مواجه میشم
FAILURE: Build failed with an exception. * What went wrong: Could not determine the dependencies of task ‘:app:compileDebugJavawithJavac’. > Failed to find Build Tools revision 29.0.2 * Try: Run with –stacktrace option to get the stack trace. Run with –info or –debug option to g et more log output. Run Iwith –scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 14s Exception: Gradle task assembleDebug failed with exit code 1 Exited (sigterm)
میتونید کمکم کنید که چجوری رفعش کنم
خیلی ممنون میشم🙏🌹
مصطفی آصفی –
سلام به شما. سلامت باشید. سوالتون رو گمانم جای نادرستی فرستادید. احتمالا منظورتون موقع ساخت apk اندروید در کیوی پایتون بوده. این خطا داره می گه Failed to find Build Tools revision 29.0.2 یعنی نمی تونه موقع ساخت apk اون build tools رو پیدا کنه. معمولا به دلیل ضعف vpn هست که نتونسته به سرورهای گوگل وصل بشه.
از vpn قوی و کرایه ای استفاده کنید و قبل اجرای دستور مطمئن بشید که vpn شما می تونه به امکانات توسعه دهنده های گوگل وصل بشه. مثلا توسعه دهندگان اندروید (+) رو تو مرورگر باز کنید.
حسین محمودابادی (خریدار محصول) –
سلام با تشکر ازدوره خوبتون از چه نسخه ای از اندروید استودیو استفاده کردین برای این آموزش ها سورس کد ها رو برام اجرا نمیشه
مصطفی آصفی –
سلام سلامت باشید.لطفا متن خطایی که دریافت می کنید رو بفرمایید تا همفکری کنیم. خطاها معمولا به دلیل نسخه اندروید استودیو نیستن به دلیل نیاز به روزآمدسازی گریدل هستن.
پینوشت: از اونجایی که فصل ها در طول زمان ضبط شدن طبیعتا نسخه های متفاوتی از اندروید استودیو استفاده شده. منتها نسخه اندروید استودیویی که کار رو باهاش شروع کردیم تو درس نصب اندروید استودیو در ویندوز مشخصه. توصیه می کنم سرفصل های دوره رو موقع تماشای فیلم ها کنار دستتون داشته باشید. سرفصل ها در پایان توضیحات همین صفحه درج شده.
محمدرضا قرباندوست (خریدار محصول) –
سلام
ممنون از اموزش خوبتون
یه نکته ای در مورد کپسوله سازی mutablelivedata در ویومدل میخواستم بگم اینکه در این روشی که کپسوله سازی رو انجام دادین در واقع اصلا کپسوله سازی انجام نشده چون باز هم میشه مقدار mutablelivedata رو ست کرد(خودتون هم میتونید تست کنید).این کاریه که انجام دادین:
private val _score = MutableLiveData()
val score: LiveData
get()=_score
اومدین MutableLiveData رو به صورت private تعریف کردین ولی بعدش دوباره از طریق Score در دسترس هست فیلد score خود _score رو برمیگردونه و میشه به این شکل مقدار ست کرد:
score.value=1
در واقع الان هیچ تفاوتی بین score و _score نیست چون هر دوشون _score رو برمیگردونن!!!در واقع به واسطه اون get که روی livedata گذاشتین الان یجورایی میتونیم هردوشون رو mutable فرض کنیم
مصطفی آصفی –
سلام به شما. ممنون از شما که اینقدر وقت گذاشتین و انتقال تجربه کردین. نمی تونم قطعی بگم چون الان مدتی هست از موضوع دور شدم و ذهنم روش نیست ولی به نظرم این که شما مقدار _score رو غیرمستقیم با تغییر score بتونید تغییر بدین ایرادی به کپسوله سازی وارد نمی کنه. مهم اون غیرمستقیم بودنه. تابع get دسترسی میده که هیچ ایرادی هم نداره. در کپسوله سازی مهم اینه که شما set مستقیم ایجاد نکنید.
Mohammad Kazemian –
من چون در گذشته آموزش اندرویدتون رو تهیه کردم و از نحوه ی تدریس واقعا لذت بردم هر چند روز یکبار به سایت سر می زنم ببینم آیا آموزش جدیدی برای اندروید منتشر کردین ؟ اما هر دفعه ناامید میشم / آیا تصمیمی بر ارائه ی آموزش جدیدی به خصوص مباحث پیشرفته ی اندروید دارین؟
مصطفی آصفی –
سلام به شما آقای کاظمیان. بله حق میدم به شما. برای خود بنده هم این دوره که یکسال هم به طول انجامید یک دغدغه بود و بعد از انتشار انگار یک باری رو به زمین گذاشتم.
بسیار دوره خوبی شده. بنده هم خیلی مشتاقم فرصتی دست بده که بتونم کار رو ادامه بدم ولی خب زمان بنده محدوده و ناچارم برای ضبط آموزش اولویت رو بگذارم با دوره هایی که پای نظرات اون ها چندین و چند نفر مثل آقای کاظمیان مدام پیام میدن که منتظر ادامه کار هستیم.
من باید به دلیل این محدودیت زمان یک مدرس مشتاق اندروید رو پیدا کنم که بیاد و زیر نظر خودم ادامه این کار رو به دست بگیره. خود شما هم می تونید اون مدرس باشید. میتونید بیاید (از راه دور) زیر نظر بنده ادامه این دوره رو بسازید. کار مرجع داره و بنده هم مشاوره لازم رو بهتون میدم. هم یاد می گیرین و هم یاد میدین. به لحاظ مالی هم امکان دریافت دستمزد و یا مشارکت در فروش برای مدرسان وجود داره. در صورت تمایل این صفحه تدریس در هم رویش رو با دقت بخونید و یک کاربرگ ارسال کنید. اگر نه باز منتظر باشین تا یک مدرس با چنین روحیه ای پیدا کنیم یا خود بنده فراغتی پیدا کنم. ممنون از همراهی شما.
محمد متین محمدی –
سلام خیلی ممنون از آموزش های خوبتون ، من در حال اتمام اموزش هستم ، فقط اینکه بحث ای پی آی در اپلیکیشن خیلی مهمه ، آیا فصل مربوط به ای پی آی قراره ضبط بشه یا شده ، یا اصلا برنامه ای دارید براش ، من انگلیسی بد نیس ولی خب آموزش فارسی خیلی برام بهتره ، ممنون میشم که فصل ای پی آی هم اماده کنید
مصطفی آصفی –
سلام و ممنون از لطف شما. انشالله ضبط این مجموعه رو ادامه میدیم و اونجا بحث رتروفیت رو خواهیم داشت. زمان آغاز ضبط البته هنوز مشخص نیست.
لطفا هم رویش رو دنبال کنید شروع ضبط و انتشار آموزش تو شبکه های اجتماعی اطلاع رسانی میشه.
سعید رزاززاده (خریدار محصول) –
سلام عرض می کنم خدمت استاد آصفی عزیز
من فعلا تا فصل ۵ این آموزش رو نگاه کردم و خواستم بگم که واقعا عالی تدریس کردید.
بنده ارشد رشته مخابرات هستم و حدود پنج ساله که برنامه نویسی اندرید رو هم در زمینه رشته خودم دارم ادامه میدم
از زمانی که الگوی MVVM برای اندریود ارایه شد منم سعی کردم تو اوقات فراغتم این شیوه رو یاد بگیرم ولی واقعا نتونستم و تمام اپ هایی رو که تا الان نوشتم به شیوه سنتی بوده
ولی من توی این دوره واقعا دید خیلی خوبی رو روی MVVM پیدا کردم و این رو مدیون شما هستم.
به جرات میگم تو سایت های فارسی همچین آموزش شیوایی رو ندیدم. بیان واقعا شیرینی داشتین …
امیدورام همیشه موفق و سربلند باشید باتشکر از شما….
مصطفی آصفی –
سلام و ممنون از این که برای ابزار لطفتون وقت گذاشتین.
جای دلگرمیه و خوشحالم که آموزش براتون مفید بوده. پیشنهاد می کنم با توجه به سابقه و علاقه ای که دارید برای ادامه این آموزش در بحث نت و ریسایکلر به مدرسان هم رویش ملحق بشید (تدریس در هم رویش).
مشاوره بنده رو در اون مسیر خواهید داشت.
Assyyaee (خریدار محصول) –
متشکرم آموزش مفیدی بود. فقط جایی در ضمن درس فرمودید که به شکل مفصل در مورد thread ها بحث خواهید کرد ولی در نهایت فقط به استفاده ای که در ROOM کردید بسنده فرمودید و نکات زیادی ناگفته ماند. و اگر ممکنه آموزش در مورد data injection در معماری mvvm و kotlin اضافه بفرمایید تا آموزش شما کامل تر باشد. بسیار ممنونم.
مصطفی آصفی –
سلام و ممنون از لطف شما. در مورد چند نخی همون طور که وعده شده بود صحبت شد. طبیعتا تمام کاربردهای ممکن بنا نیست در یک آموزش بحث شود.
در مورد پیشنهادتون بله انشالله در آموزش های مستقل آینده به data injection هم می پردازیم.
محمدمتین محمدی (خریدار محصول) –
سلامی دوباره استاد چرا فایل هایی که میگید پیوست میکنید برای من پیوست نمیشه و غیر از فیلم فایل دیگه ای نیست
مصطفی آصفی –
سلام آقای محمدی عزیز. خب شما اصلا این دوره رو تهیه نکردید. یا دست کم با این ایمیلی که نظر گذاشتید جزو فراگیران نیستید.
هم لینک گیت هاب و هم فایل آغاز و پایان پروژه ها به دوره پیوست شده.
محمدمتین محمدی (خریدار محصول) –
سلام کسی میدونه که از کجا میتونم یدونه vpn برای اوبونتو پیدا کنم. برای فایرفاکس افزونه دارم ولی برای سیستم عامل ندارم
اگر رایگان باشه و کار کنه که عالی میشه.
ولی اگر پولی به درد به خور هست لطفا لینک سایتی چیزی بدید ممنونم.
مصطفی آصفی –
سلام به شما. از تیکنت استفاده کنید (لینک رو برای جلوگیری از ایجاد مشکل برای هم رویش نمی گذارم).
پینوشت – لطفا از ارسال نظر غیرمرتبط با موضوع آموزش پرهیز کنید. ممنونم
محمدمتین محمدی –
آیا میشه در کاتلین جیسون گرفتش و اون رو پردازش کرد، من این آموزش رو خواهم خرید ولی این برای من یه سواله ، اخه برای اپی که من در نظر دارم باید اطلاعات به صورت جیسون باشه و از رست ای پی آی جنگو استفاده خواهم کرد و اینکه در مورد ای پی آی در این آموزش چیزی هست یا نع
مصطفی آصفی –
سلام به شما. بله در اندروید خواه جاوا بنویسید و خواه کاتلین، می تونید API صدا بزنید.
حتی در انتهای آموزش Django REST (+) نحوه این کار رو بر اساس جاوا و کتابخونه Volley توضیح دادم. تبدیل اون به کاتلین هم خیلی سخت نیست.
در روش های تازه از کتابخونه Retrofit هم به جای والی استفاده میشه که نوعی نگاه کلاسی داره. برای شروع برای شما عملکرد این دو تفاوتی نمی کنه.
مصطفی –
ایا ریسایکلر ویو نیز تدریس شده؟
مصطفی آصفی –
سلام به شما. خیر این مبحث گفته نشده.
برای اطلاع از جزئیات این بسته، توصیه می کنم فیلم معرفی دوره و سرفصل های دوره رو از انتهای توضیحات بررسی کنید.
قاسمی –
سلام مجدد،
سرنوشت کاتلین با معرفی سیستم عامل جدید فیوشا چه خواهد شد؟ آیا بهتر نیست بجای کاتلین از فلاتر استفاده کنیم؟ چون همه ما مطمئن هستیم که فیوشا با دارت نوشته شده است.
احتمال از بین رفتن کاتلین با آمدن فیوشا مرا به دغدغه می اندازد!
kaktoos096@gmail.com –
سلام و وقت بخیر خدمت استاد آصفی گرامی.
من فیلم معرفی دوره را دیدم و مقاله جاوا یا کاتیلن را هم خواندم اما همچنان سوالی در ذهنم باقی مانده است.
من به سی پلاس پلاس مسلط هستم و اخیرا روی جاوا کار میکنم و خیلی شبیه خانواده سی هست از لحاظ سینتکسی.
استاد با توجه به اینکه خود شما هم به قدرت جاوا اشاره فرمودید و اینکه من از برنامه نویس های اندروید که به کاتلین کوچ کردند هم شنیدم که هنوز هم ناگزیر از استفاده از کتابخانه های قدرتمند جاوا هستند، سوالم از خدمت شما استاد بزرگوار این هست که آیا بهتر نبود قدری هم به جاوا میپرداختید و بعد سراغ کاتلین میرفتید؟
اینکه میفرمایید کدهای آماده جاوا قابل استفاده در کاتلین هست یعنی نیازی نیست لزوما توسعه اندروید با جاوا را یاد بگیریم و میشه از کدهای آماده استفاده کرد؟
چون در حال خود آموزی جاوا هستم این سوال را میپرسم تا بدانم چه مسیری را انتخاب کنم.
آیا تا حدی پرداختن به جاوا میتواند مفید باشد یا وقت تلف کردن است و شروع و ادامه با کاتلین کافی است؟
مصطفی آصفی –
سلام به شما.
بنده اطلاع ندارم البته که قصد شما از مسیر توسعه اندروید چی هست.
فرض اول: به طور کلی قصد یادگیری توسعه اپلیکیشن موبایل رو دارید. در این صورت با توجه به تسلطی که گفتید به سی پلاس پلاس دارید توصیه می کنم روی QT تمرکز کنید.
فرض دوم: قصد دارید لزوما توسعه اندروید رو با استاندارد گوگل یاد بگیرید. در این صورت حتما با کاتلین شروع کنید. با توجه به تمرکز گوگل روی کاتلین (چه در اندروید و چه در کدهای بومی بخش اندروید فلاتر) برای توسعه اندروید شما حتما با کاتلین شروع کنید. در صورتی که فکر می کنید در آینده مکرر قصد استفاده از کتابخونه های جاوا رو در پروژه خواهید داشت، کافیه که سینتکس جاوا رو صرفا یاد بگیرید و همین طور وقتی پیشرفته تر توسعه اندروید رو یاد گرفتید دوره های ویژه ای برای نحوه ترکیب کدهای جاوا در پروژه های اندروید کاتلینی ببینید.
پینوشت: شاید در آینده در دوره های تکمیلی اندروید با کاتلین در هم رویش به این مبحث بپردازیم. میتونید هم رویش رو در شبکه های اجتماعی دنبال کنید تا به موقع از انتشار آموزش های تازه مطلع بشید.
زهرا قاسمی –
سلام. من دوره های مختلفی برای آموزش اندروید رو بررسی کردم. زیر فصل های خیلی بیشتری نسبت به آموزش شما داشتند. نمیدونم شاید شما کلی نوشتین و همون مطالب رو پوشش میدید از طرفی ادعا میکنند که بهتره با جاوا شروع کرد و بعد سراغ کاتلین رفت چون تفاوت سینتکسی رو ظرف یک هفته میشه یاد گرفت. من قصدم حرفه ای شدن در اندرویده. سوال اصلیم اینه که در انتهای این آموزش از صفر تا صد در چه جایگاهی نسبت به حرفه ای ها قرار میگیرم؟ میدونم یک برنامه نویس خودش باید عامل پیشرفت خودش باسه و هر روز یاد بگیره و خودش رو به چالش بکشونه. صرفا مقایسه نسبت به سایر آموزش ها رو میخوام بدونم که ساعت آموزش بیشتره(دلیل بر کفیت نیست البته بالا بودن تایم آموزش چون دیدم که بعضی ها وقت تلف میکنند حتی حین آموزش به stackoverflow مراجعه میکنند) هزینه های خیلی زیادی هم میگیرند. لطفا من را راهنمایی کنید سپاس
مصطفی آصفی –
سلام به شما.
در مورد سوال اولتون اول توصیه می کنم که فیلم معرفی بسته رو با دقت بیشتری ببینید. همه چیز گفته شده. انتهای توضیحات بالا هم سرفصل های آموزش رو مطالعه کنید.
باز برای آشنایی بیشتر با هر کدوم از فصل های آموزش لطفا از آغاز بخش توضیحات آموزش روی لینک هر فصل بزنید تا وارد صفحه اختصاصی اون فصل و جزئیاتش بشید.
در مورد زبان برنامه نویسی اندروید این مقاله کاتلین یا جاوا رو بخونید.
در مورد مسیری که در این آموزش طی می کنیم، البته در فیلم معرفی توضیح دادم ولی مجدد باید عرض کنم که ما با فرض این که شما با کاتلین آشنایی دارید کار رو در این آموزش شروع می کنیم. پس قبل از دیدن این آموزش یک آموزش مقدماتی کاتلین (متغیر، حلقه، تابع، کلاس) رو باید برید و ببینید.
کار رو با نصب اندروید استودیو و ایجاد اولین پروژه و امضا و استخراج فایل apk قابل نصب روی گوشی شروع می کنیم. گام به گام در قالب پروژه های مختلف پیش می ریم (مطابق سرفصل ها) و تا حد کار با پایگاه داده پیش می ریم.
مهم ترین ویژگی این دوره اینه که مرجع اصلی این آموزش، سرفصل های آموزش یوداسیتی خود گوگل هست. یعنی یک آموزش استاندارد با سرفصل جهانی رو تجربه می کنید.
پینوشت: شاید بهتره باشه شما کل بسته رو یکجا تهیه نکنید. از لینک موجود در توضیحات برید و فصل اول رو تهیه کنید. و بعد اگه خوب پیش می رفتید فصل به فصل ادامه بدین.
پینوشت 2: دیدم که شما فراگیر آموزش «چگونه برنامه نویس شویم» هم هستید. اونجا فضا کاملا متفاوته. توصیه می کنم تا زمانی که اون آموزش رو کامل نکردید از اون شاخه به این شاخه نپرید. خود اون آموزش در بخش دوم به بازی سازی و بعد به برنامه نویسی وب می رسه و خیلی جای تمرین داره. اول اونجا رو پیش برید بعد اگه دوست داشتید بیاید و اندروید رو بررسی کنید. ضمنا با پایتون هم میشه اپلیکیشن اندروید و دسکتاپ ساخت. بعد از اون آموزش می تونید این آموزش کیوی رو ببینید.
علی –
باسلام خواهش میکنم تا تخفیف پکیج تموم نشده راهنمایی بفرمایید من با استفاده از آموزش رایگان تک قسمتی این دوره اندرویداستودیو رو نصب کردم و sdk هم دانلود شد و همه چی اوکی بود فقط چندتا مشکل دارم که اونا منو در تصمیم برای خرید این پکیج دودل میکنه…
اندروید استودیو بنده کمی کند هست رم من 4 گیگ هست و ویندوزم هم 7 می باشد.همچنین به شبیه ساز اندروید AVD کانکت نمیشم و اونم کلا هنگ میکنه. RUN گرفتن خیلی طول میکشه(در حد 17 دقیقه)که اگر بخواهیم یک پروژه توسعه بدیم و هی کامپایل کنیم جهت تست خیلی زمانبر میشه. همچنین یک مشکل دیگه ای هم دارم اینه که مثلا وقتی توی فایل .kt یک حرف مینویسم دیگه مثل اندروید استودیوی شما هیچی نمیاد و اگر بخوام کد بزنم باید حرف به حرفش رو خودم تایپ کنم و اون لیست پیشنهادی باز نمیشه
خواهشمندم راهنمایی بفرمایید ممنون
مصطفی آصفی –
سلام به شما. ببینید اندروید استودیو رو می تونید با رم 4 گیگ هم اجرا کنید هر چند به هر حال کمی ضعیف تره. اما دقت کنید دو موضوع ممکنه خیلی بیشتر سرعت اجرا را پایین ببره:
1- دقت کنید SDK اندروید رو تا حد ممکن روی درایو دیگه ای ذخیره کنید و تا حد ممکن فضای کافی روی درایو C باقی بگذارد که در مواقع لازم بتونه به کمک رم بیاد.
2- دقت کنید که سرعت اینترنت شما هم روی سرعت بیلد اندروید استودیو به خصوص بار اولی که کتابخونه ها رو می ره و دریافت می کنه تاثیر داره. تا حد ممکن سعی کنید از یک نت خوب و VPN کرایه ای مناسب با سرعت خوب استفاده کنید.
ضمنا ویندوز 7 ویندوز سنگینیه. توصیه می کنم ویندوزتون رو به 10 ارتقا بدین.
قاسمی –
آقای آصفی اگه جواب بدین ممنون میشم
مصطفی آصفی –
سلام به شما. پایین خدمتتون جواب دادم. می بخشید که دیر شد.
قاسمی –
سلام و عرض احترام خدمت استاد آصفی و مجموعه خوب همرویش،
بنده قبل از تهیه این آموزش چند تا سوال دارم:
۱-بنده سابقه برنامه نویسی جاوا و b4a را دارم اما اصلا با کاتلین حتی در حد تعریف یک متغیر آشنایی ندارم اما علاقه مند به شروع فراگیری استاندارد کاتلین هستم. این دوره مناسب هست؟
۲-آیا با این دوره نسبتا کامل کاتلین را یاد میگیرم؟
۳-آیا میتوانم پس از پایان دوره پروژه های حرفه ای کار کنم و اپلیکیشن های پیشرفته با کاتلین بسازم؟
۴- فرایند برنامه نویسی کاتلین آفلاین است؟ برای سینک کردن چطور؟
۴-کد تخفیف دارید؟
مصطفی آصفی –
سلام به شما. می بخشید که پاسخ شما دیر شد. بین نظرات آموزش های دیگه فراموش شده بود.
ببینید در این دوره همون طور که در فیلم معرفی بسته ها هم توضیح دادم ما فرضمون بر این هست که شما اصول برنامه نویسی کاتلین رو بلد هستید و حالا در پی توسعه اندروید با کاتلین این دوره رو دریافت می کنید.
بنابراین در این دوره بنده به آموزش کاتلین نمی پردازم. با توجه به این که سابقه برنامه نویسی دارید، پیش از دیدن این آموزش لطفا یک آموزش مقدماتی کاتلین ببینید. برای مثال دوستان عزیز در مجموعه فرادرس یک آموزش مقدماتی کاتلین دارن که به نظرم باید خوب باشه. آموزش های رایگان متعددی هم در نت هست. همین که تعریف متغیر، تابع و کلاس رو توضیح داده باشن برای این دوره کافیه.
پس ما در این بسته تمرکزمون روی توسعه اندروید با کاتلین و استاندارد توسعه خود گوگل هست. 6 فصل داریم که هر فصل هم همون طور که در توضیحات لینک شده می تونید به صورت جداگانه تهیه کنید. فیلم معرفی هر فصل هم کامل توضیح میده که در اون فصل چه گفته شده. پروژه های متعددی هم اجرا میشن تا شما توسعه رو اصولی یاد بگیرین.
ضمنا کار در اندروید استودیو آفلاینه ولی دریافت کتابخونه ها و بیلد پروژه در هر بخش نیاز به نت خوب و VPN قوی داره.
من توصیه می کنم شما پیش از تهیه کل بسته، از بخش توضیحات وارد لینک فصل اول بشید و این فصل رو تهیه کنید و بعد اگه دیدید روند مناسبه به مرور فصل های بعدی رو ببینید.
آزاد (خریدار محصول) –
استاد اولا که خسته نباشید بگم خدمت شما عالی بود
فقط 2 تا نکته می خوام بگم یکی اینکه ای کاش ارتباط با سرور رو هم می گفتید و نکته ی دیگه اینکه ای کاش اون یکی دوتا برنامه ی آماده رو از اول می نوشتید که هم تمرین خوبی می شد هم ترس ما از انجام پروژه کم می شد هم بهتر در جریان کدنویسی پروژه قرار می گرفتیم.
دست شما درد نکنه
مصطفی آصفی –
سلام و ممنون از محبت شما و این که برای ابراز نظر و لطفتون وقت گذاشتید.
در مورد ارتباط با سرور انشالله این رو به عنوان آموزش تکمیلی خواهیم داشت. با معرفی آموزش به دیگران و افزایش فراگیرانش می تونید اولویت ضبط آموزش های تکمیلی دراین زمینه رو افزایش بدید.
پیشنهادتون در مورد ساخت یک پروژه از صفر پیشنهاد خوبیه منتها دقت کنید که در واقع شما در همه فصل ها مواردی که در پروژه آماده استفاده شده رو در فصل قبلی یاد گرفتید. در فصل اول ما همه چیز رو از صفر ساختیم. در فصل های بعدی هر بار هر چیزی که در فصل های قبلش یاد گرفتیم رو دیگه در دل یک پروژه آماده داریم و به یادگیری نکته های اضافی پرداختیم که زمان خیلی طولانی نشه.
با این توضیح، من پیشنهادتون رو به عنوان یک تمرین به شما بر می گردونم (که در دل دوره هم گفتم). سعی کنید پروژه یکی دو تا از فصل ها رو از صفر خودتون با ساخت پروژه بازنویسی کنید. این تمرین خیلی خوبیه. اون نقطه عطفی که شما رو از فراگیر به برنامه نویس تبدیل می کنه دقیقا غلبه به همین ترسه که همیشه باید آموزش دید. برعکس شما باید اون بخش هایی که آموزش ندیدید رو بر اساس اونچه آموزش دیدید امتحان کنید و خراب کنید و خراب کنید تا ترستون بریزه.
اگه یه مهندس عمران باشید. خرابکاری ممکنه به تخریب یه خونه منتهی بشه. اما یه برنامه نویس خیلی دستش بازه. خرابکاری نهایتش یعنی حذف یه پوشه و ساختن از نو. پس فقط به ترستون غلبه و تمرین کنید.
پی نوشت – هم رویش در شبکه های اجتماعی دنبال کنید که انشالله از انتشار دوره های بعدی مطلع بشید.
آزاد (خریدار محصول) –
البته یک نکته رو اضافه کنم. نباید از حق گذشت که فصل دوم عالی بود 🙂
مصطفی آصفی –
سلام مجدد و ممنون از لطف شما
و همین طور ممنون که برای گزارش موارد اصلاحی وقت می گذارید. اینجا یادداشت بفرمایید بنده انشالله یک به یک بررسی می کنم.
آزاد (خریدار محصول) –
با سلام مجدد خدمت شما استاد
Kotlin android extensions ظاهرا دپرکیت شده و نمیشه ازش استفاده کرد. فصل های بعد رو هم ببینم چیزی بود خدمتتون عرض می کنم.
با تشکر از شما و آموزش خوبتون
آزاد (خریدار محصول) –
با سلام و خسته نباشید
می خواستم عرض کنم تا اینجا (آخر فصل دوم) که مطالعه کردم برخی از کتابخانه ها replace شدن یا نحوه ی استفاده شون فرق کرده. میشه لطفا آپدیت بفرمایید
با تشکر
مصطفی آصفی –
سلام به شما. لطفا مواردی که روزآمد شدن طوری که نحوه استفاده شون فرق کرده رو بفرمایید که اولین فرصت انشالله بررسی و توضیح لازم رو اضافه کنم.
مهدی محبی –
سلام خدمت دوستان گرامی و استاد عزیز خواستم بدونم برای یرنامه نویس اندروید سراغ کیوی برم یا کاتلین؟
مصطفی آصفی –
سلام به شما. ببینید بستگی به هدف گذاری شما داره.
اگر هدفتون اینه که تبدیل به یک برنامه نویس اندروید بشید و برای شرکت ها یا اشخاص کار کنید، قطعا به سمت اندروید استودیو و توسعه اندروید به صورت نیتیو (با کاتلین) برید. امکانات در اونجا مخصوص اندروید هست و کارها به سادگی بیشتری انجام میشه.
توسعه کراس پلتفرم با ابزارهایی مثل کیوی یا فلاتر یا ریکت نیتیو برای دو دسته مناسبه: 1- اشخاصی که برای مثال با یک زبان مثل پایتون خیلی راحت هستن و مایلن با همون زبونی که سرور رو نوشتن با همون هم اپ اندروید یا iOS رو بنویسن. 2- شرکت هایی که به هر دلیل نمی تونن یا نمی خوان توسعه اندروید و iOS رو جداگانه (احتمالا توسط تو تیم جداگانه در شرکت) انجام بدن. در چنین مواردی توسعه کراس پلتفرم اول کار خب سخت تره ولی وقتی کار کمی شکل گرفت این خیلی زمان به ما میده که هسته کد با یک زبان و یک جا هست و بنابراین روزآمدسازی ها سریع تر هستن.
در توسعه چندسکویی یا cross-platform با کیوی همچنین به این موضوع توجه کنید که پیاده سازی زیان فارسی در حال حاضر با مشکلاتی مواجه هست و باید در این زمینه صبر زیادی داشته باشید. ولی خب داشتن خروجی هم زمان برای اندروید و iOS و ویندوز و لینوکس و مک ممکنه در شرایطی این ایراد رو کم رنگ کنه.
همچنین شما می تونید با ابزارهایی مثل فلاتر (زبان دارت) و ریکت نیتیو (زبان جاوااسکریپت) هم کراس پلتفرم رو تجربه کنید که البته خروجی اون ها اندروید و iOS هست. ریکت نیتیو در حال حاضر پخته ترین ابزار کراس پلتفرم برای توسعه هست هر چند که از روانی و کتابخانه های غنی پایتون در قلب کیوی هم به سادگی نمیشه گذشت.
همون طور که ملاحظه می کنید همه چیز بسته به شرایط و هدف گذاری شماست.
توفیق شیخ زاه –
سلام وقت بخیر
استاد فصل سوم قسمت پنجم رو انجام میدم خطای زیر رو میگیرم . ممنون میشم راهنمایی بفرمایید
2020-12-21 11:13:32.484 32398-32398/com.example.hamruyesh_trivia_starter E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.hamruyesh_trivia_starter, PID: 32398
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hamruyesh_trivia_starter/com.example.hamruyesh_trivia_starter.MainActivity}: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6942)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
Caused by: java.lang.NullPointerException: DataBindingUtil.inflate(…nt_title,container,false) must not be null
at com.example.hamruyesh_trivia_starter.TitleFragment.onCreateView(TitleFragment.kt:23)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
at androidx.fragment.app.FragmentManagerImpl.ensureInflatedFragmentView(FragmentManagerImpl.java:1138)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:851)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1133)
at androidx.fragment.app.FragmentManagerImpl.addFragment(FragmentManagerImpl.java:1393)
at androidx.fragment.app.FragmentManagerImpl.onCreateView(FragmentManagerImpl.java:3205)
at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:134)
at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:357)
at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:336)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:303)
at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:284)
at com.example.hamruyesh_trivia_starter.MainActivity.onCreate(MainActivity.kt:17)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1221)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6942)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
که تگ رو ایراد میگیره
توفیق شیخ زاه –
سلام . آموزش بسیار بسیار عالی و کاربردی بود . ممنون از زحماتتون
a.oftade70@gmail.com –
استاد میگن کاتلین تنها زبانی هست که از همه زبان ها راحت تره. و کدهای کمی و ارورهای کمی در ساخت اپلیکیشن داره
مصطفی آصفی –
سلام. روی انتخاب زبان خیلی سخت نگیرید. هدفتون ببینید چی هست. بعد ببینید برای اون هدف چه زبانی فریمورک های مناسب تری داره.
a.oftade70@gmail.com –
با زبان کاتلین میشه اپلیکیشن فروشگاهی دیجی کالا را ساخت؟
مصطفی آصفی –
سلام به شما. (به دلیل طولانی بودن پاسخ توصیه می کنم در دسکتاپ مطالعه کنی)
ببینید یک اپلیکیشن فروشگاهی آنلاین مثل دیجی کالا به طور کلی از دو بخش تشکیل شده. یک سرور آنلاین داره که جایی در شبکه اینترنت داده های دیجی کالا رو در خودش نگه می داره (دادهها یعنی مثلا متن هایی که حاوی مشخصات کالاها هستند، عکس کالا ها، اطلاعات ثبت نامی کاربران و ….). و بعد روی این سرور یک برنامه ای وجود داره که وقتی شما آدرس اون سرور رو صدا بزنی اون برنامه بر اساس منطقی که شما براش نوشتی (با یک زبان برنامه نویسی) میره و اون اطلاعات مورد نظر شما رو می خونه.
بخش دوم اون برنامه ای هست که مشتری باهاش کار می کنه. مثلا یک برنامه اندروید. این رو هم شما براش یک منطقی نوشتی (با یک زبان برنامه نویسی مثل کاتلین).
حالا مثالی بزنم که این دوبخش چطور کار می کنن. خوب لطفا متن پایین رو با دقت بخون:
1- مشتری اپلیکیشن دیجی کالا رو باز می کنه و مثلا روی دکمه «ساخت حساب کاربری» به فرض می زنه.
2- تو دل این اپلیکیشن شما قبلا کدنویسی کردی که وقتی دکمه «ساخت حساب کاربری» زده شد یک فرم برای کاربر نمایش بده که حاوی دو تا باکس گرافیکی برای وارد کردن نام کاربری و گذرواژه باشه.
3- پس مشتری وقتی روی اون دکمه بزنه برنامه دستورات شما رو اون پشت صحنه اجرا می کنه و مشتری فرم ثبت نام رو می بینه و بعد پر می کنه و روی دکمه «ثبت نام» مثلا می زنه.
4- حالا اینجا رو دقت کن. تو دل اپلیکیشن شما برای دکمه ثبت نام یک کد مخصوص نوشتی (با زبان کاتلین). با زبان برنامه نویسی در واقع نوشتی که برنامه من وقتی کاربر روی این دکمه ثبت نام زد تا بیا برو این آدرس از سرور رو صدا بزن تا اطلاعات ثبت نام کاربر اونجا ذخیره بشه. حالا سرور چیه. یک برنامه روی یک کامپیوتر یک جای دیگه از دنیا که آنلاین به شبکه اینترنت متصله و به همین خاطر از جای دیگه در شبکه اینترنت شما می تونی صداش کنی.
5- اون طرف توی سرور هم شما با زبان برنامه نویسی مخصوص سرور که می تونه زبان های مختلفی باشه (معمولا php یا سی شارپ یا جاوا یا پایتون هست ولی با کاتلین هم میشه) کدی نوشتی که هر وقت فلان آدرس من رو کسی صدا زد و اطلاعاتی شامل نام کاربری و گذرواژه فرستاده بود دیتابیس باز بشه و این اطلاعات کاربر اونجا ذخیره بشه که بارهای بعد من این کاربر رو بشناسم.
6- حالا بار بعد که کاربر وارد اپلیکیشن بشه چون قبلا حساب کاربری ساخته دیگه روی «ساخت حساب کاربری» نمی زنه و روی «ورود» می زنه و اون نام کاربری و گذرواژه رو وارد می کنه و می فرسته. باز مثل گام های بالا یک صحبتی بین اپ موبایل و اپ سرور انجام میشه و اپ سرور اطلاعات دریافتی موبایل رو چک می کنه و جواب می ده که بله این کاربر در دیتابیس های من ثبت شده و می تون اطلاعات محصولات رو ببینه. پس اپ کاربر رو یک مرحله جلو می بره و باز در صفحه محصولات گفتگوی تاه ای انجام میشه و سرور محصولات رو نمایش می ده و به همین ترتیب.
در واقع می بینی که مدام ما در حال ارسال پیام از موبایل به سرور هستیم (اون لودینگ که علامتش توی اپ ها میاد در واقع زمانیه که اپ داره اطلاعات رو به سرور می فرسته و جواب می گیره).
امیدوارم که دست کم کلیت این فرآیند کمی برای شما روشن شده باشه. دست کم این رو درک کرده باشی که پس ما در یک اپ آنلاین دو تا برنامه داریم که دارن با هم حرف می زنن.
حالا اگر شما هدفت ایجاد یک استارتاپ کوچیک شخصی باشه و خودت تنها باشی و دوست سرورنویسی نداشته باشی احتمالا خودت مجبور هستی هر دو طرف رو کدنویسی کنی. در این صورت بعد از یادگیری کاتلین و برنامه نویسی اندروید باید بری و یک زبان و پلتفرم هم برای برنامه نویسی سرور یاد بگیری.
اگر هم هدف شما ورود به بازار کار و کار در تیم های بزرگ باشه که باید در یک موضوع خبره بشی. مثلا در همین اندروید یا سرور.
پینوشت- در پروژههای بزرگ معمولا به دلیل بزرگی پروژه ها یک تیم روی برنامه موبایل کار می کنن و یک تیم روی برنامه سرور.
پینوشت 2- وقتی شما به جای اپلیکیشن اندروید دیجی کالا از اپلیکیشن iOS دیجی کالا استفاده کنی باز هم همین فرآیند برقراره منتها کدهای پشت اپ شاید با زبان دیگه ای نوشته شده باشه که برای گوشی iOS قابل استفاده باشه. این روزها فریمورک هایی هم هستند مثل React Native یا Flutter که در اون ها می تونی با یک زبان کدنویسی کنی و خروجی برای چند نوع گوشی بگیری. که البته در آغاز راه اون ها برای شما سنگینه.
پینوشت 3- خوب دقت کن لطفا. اگر شما به جای اپلیکیشن موبایل دیجی کالا وارد وبسایت دیجی کالا هم بشی در واقع فرآیند بالا برقراره. منتها این بار مرورگر شما (مستقل از نوع سیستم عاملی که روش اجرا میشه) بسته به کارهایی که کاربر می کنه دستورات لازم رو برای سرور ارسال می کنه.
پینوشت 4- متن بالا برای شما که با برنامه نویسی اصلا آشنا نیستی شاید در خوانش اول خیلی سنگین باشه. پس هر چند روز که تحقیق های تازه می کنی برگرد و دوباره متن رو بخون تا زاویه های تازه ای ازش رو درک کنی.
پینوشت 5- متن توصیه می کنم که شما اگر هدفت ورود به بازار کار هست همون مسیری که در نظر قبلی برات گفتم رو پیش برو با دقت تا یک برنامه نویس اندروید خوب بشی (اگر علاقه داری). اما اگر هدفت ساخت یک استارتاپ آنلاین هست با توجه به این که هیچ شناختی از برنامه نیسی نداری با زبان پایتون شروع کن که با آموزش های هم رویش در این زمینه می تونی گام به گام هم سرور و هم اپ موبایل رو با صرف زمان کمتری تجربه کنی. این مسیر پایین رو طی کن (فقط وقتی برو به گام بعدی که گام قبلی رو کامل دیده باشی و تمرین کرده باشی):
گام اول: این آموزش شروع برنامه نویسی با پایتون (+)
گام دوم: دیدن این آموزش کیوی (+) برای ساخت اپلیکیشن موبایل و دسکتاپ
گام سوم: دیدن این آموزش API با جنگو (+)
گام چهارم (اگر از الان خوب تمرین کنی حدود 6 ماه بعد به این گام می رسی): شروع کار روی یک پروژه نمونه شخصی برای خودت. مثلا ساخت یک اپلیکیشن وبلاگ شخصی با قابلیت نمایش در اپلیکیشن موبایل و سعی برای حل چالش های شخصی پروزه با جستجو در فروم های داخل و خارج.
موفق باشی.
a.oftade70@gmail.com –
فقط اول دره گفتین 22 ساعت آموزش اما در داخل دوره 20 ساعت نوشتین
مصطفی آصفی –
بله اشتباه کردم 22 ساعت هست.
a.oftade70@gmail.com –
ممنون استاد از جواب و راهنمایی کامل و بی نقصتون مطمنا آموزش ها تون هم مث جوابتون عالی هست
امیر –
با سلام میخاستم بپرسم این آموزش جامع کاتلین از صفر تا صد آموزش میده؟ و به منابع دیگر نیاز پیدا نمیکنم من تا حالا برنامه نویسی نکردم اصلا
مصطفی آصفی –
سلام به شما. خیر دوست عزیزم همون طور که در دقیقه 1:50 فیلم معرفی دوره در بالای این صفحه هم اشاره کردم داشتن دانش اولیه از زبان کاتلین لازم هست.
اگر هیچ بینشی از برنامه نویسی ندارید توصیه می کنم اول این آموزش رایگان (+) دوست عزیز آقای دکتر کلامی رو ببینید.
بعد از اون باید یک آموزش مقدماتی کاتلین هم ببینید. در اینترنت نمونه های رایگان زیادی هست. اما توصیه می کنم باز از این آموزش دوستان در فرادرس (+) استفاده کنید.
بعد سراغ این آموزش اندروید با کاتلین بیاید.
asghar bizaval (خریدار محصول) –
باسلام
سوالی داشتم فقط ندونستم کجا بپرسم.مجبورا تو قسمت دیدگاه ها سوالمو مطرح کردم.
تو قسمت Navigation، وقتی تو فرگمنت 3 هستم و از دکمه Back خود گوشی برای برگشت اسفاده میکنم یه مشکلی پیش میاد.اگه تو فرگمنت دومی تغییری ایجاد کنم(مثلا متن EditText رو عوض کنم) وقتی یک بار روی دکمه Back میزنم اتفاقی نمی افته و باید دوبار بزنم تا به فرگمنت اولی برگرده ولی اگه تو فرگمنت دومی تغییری ندم و برم به فرگمنت سوم با همون یک بار کلیک روی Back ،برمیگرده به فرگمنت اولی.
نتونستم دلیلش رو پیدا کنم با اینکه چک باکس PopupToInclucive رو true کردم.
سیدعلی علوی (خریدار محصول) –
سلام
وقت بخیر و خداقوت بابت این آموزش خیلی خوب. من این بسته رو خریدم فقط یه موردی در دانلود وجود داره. از IDM استفاده میکنم. یه مقدار از دانلود که میره (مثلا بیش از نصف حجم فایل دانلود شده و آخراشه) پیغام میده که نمیشه از چند مسیره استفاده بشه و میره روی حالت تک مسیره که هم از تمام سرعت نت استفاده نمیکنه و به ماکزیمم سرعت نمیرسه و هم قابلیت رزیوم نداره (من گذاشتم روی 32 مسیر و با هیچ سایت دیگه ای این مشکل رو ندارم)
روابط عمومی هم رویش –
با سلام و عرض ادب
دوست گرامی لینک ها رمز نگاری شده و متاسفانه این نوع رمز گذاری هنوز توسط نرم افزار IDM شناخته شده نیستند.شما می توانید برای دانلود سریع از نرم افزار متن باز و رایگان FDM استفاده فرمایید که با لینک های کد گذاری شده هم مشکلی ندارد و سرعت دانلود رو هم افزایش میده و کرک شده هم نیست
میتونید به صورت رایگان از لینک زیر دریافت نمایید
https://www.freedownloadmanager.org/
Asghar (خریدار محصول) –
با سلام.
بهترین آموزشی هست که تو عمرم دیدم.نحوه تدریس و لحنتون عالیه.لطفا ادامه بدید و آموزش dagger و retrofit رو هم بزارید.ممنون
جواد –
سلام
یک مبحث مهم در دوره جامعتون نیست
اونهم ارتباط با سروره
این بخش رو ارائه نمیدین ؟
مصطفی آصفی –
سلام به شما. بله با توجه به این که دوره از صفر شروع شده تا بحث پایگاه داده پیش رفتیم تا زمان بسته خیلی طولانی نشه و فراگیر بتونه تا پایان پیش بیاد.
انشالله در آینده موارد تکمیلی به صورت مستقل ارائه خواهند شد. البته فراگیر مستعد در پایان این آموزش هم شناخت کافی برای خوآموزی پیدا کرده.
ali –
با عرض سلام
آیا توی دوره اموزش dagger2 و Retrofit هم آموزش داده شده؟
و اینکه میشه فصل ها رو جداگونه خریداری کرد؟
مصطفی آصفی –
سلام به شما. خیر دوست من. این دو مورد به امید خدا در آینده به صورت مستقل در همرویش منتشر خواهند شد. همرویش رو با شناسه @hamruyesh در شبکه های اجتماعی دنبال کنید تا به موقع مطلع بشید.
مرتضی (خریدار محصول) –
سلام خدمت استاد آصفی
لازم دیدم برای آموزش باکیفیت و توضیح کامل مفهوم های کاربردی تشکر کنم واقعا ارزش ریالی این دوره بیش تر از اون چیزی هست که ارایه شده خسته هم نباشید امید وارم همیشه همینجور ادامه بدید بی صبرانه منظر دوره های تکمیلی این مباحث هستم.
مصطفی آصفی –
سلام و سپاس که برای ابراز محبت خودتون وقت گذاشتید. انشالله که در آینده کاری عزیزان سهم عمیقی داشته باشه.
رضا فرزانه پور (خریدار محصول) –
سلام
آقای آصفی این دوره طبق استاندارد مگه ۱۰ فصل قرار نبود باشه؟
اون ۴ فصل که از دوره کم شده بنظرتون زیاد نیست؟
چون در این صورت خیلی نکته ها و بخش زیادی از آموزش های استاندارد گوگل ناتموم میمونه
دلیلتون رو که در پایان فصل ۶( همینطور سرسری که داشتم به آموزش ها نگاه مینداختم) توضیح دادین ظاهرا فرمودین که قصد ندارین این دوره برای دانشجوی تازه کار وحشت اور باشه چون حجم مطالب زیاد میشه( در صورتی که خیلی راحت میتونه از فصل اول جدا گونه خریداری کنه بیاد جلو)
تکلیف شخصی که قصد یادگیری اون مطالب هم داره چطور نیاز اونهارو درنظر نگرفتید؟
ممنون
مصطفی آصفی –
سلام به شما. این بسته تا این بخش (کار با پایگاه داده) کامل هست.
در آغاز ضبط دوره قصد داشتم فصل به فصل تمام استاندارد گوگل رو مستمر منتشر کنم. اما متوجه شدم انتشار فصل به فصل کاربر رو همیشه در انتظار آزار دهنده می گذاره. ضمنا حجم بسته هم خیلی بالا می رفت. من معتقدم که زمان آموزش اگه خیلی طولانی بشه کاربر حس جمع بندی نمی کنه و زده می شه.
انشالله بعد از این بسته باقی سرفصل های استاندارد گوگل که هم شامل 4 فصل دیگه از این سطح و هم شامل 10 فصل دیگه از مباحث پیشرفته هست رو هر بار به تناسب میزان نیاز فراگیران مستقل منتشر می کنم. مثلا آموزش کار با اینترنت و کتابخانه Retrofit یکی از مهم ترین مباحثی هست که در دست کار دارم در آینده.
رضا فرزانه پور (خریدار محصول) –
آقای آصفی ضمنا اگر یک آموزش زبان کاتلین هم به عنوان پیش نیاز این دوره قرار بدین دیگه از ب بسم الله از بیسیک زبان با تدریس خودتون ببینیم واقعا عالی هست ممنون
مصطفی آصفی –
سلام مجدد. یکی از مدرسان قرار بود آموزش کاتلین رو در همرویش کار کنن که بنده دیگه این موضوع رو در برنامه نگذاشتم. امیدوارم به زودی این بحث هم اضافه بشه.
رضا فرزانه پور (خریدار محصول) –
با سلام و درود
اوضاع و احوال استاد آصفی عزیز ؟ خوب هستید انشالله؟
پکیج جامع رو به تازگی خریداری کردم و در حال دانلود هست یقین دارم با یک آموزش عالی و هیجان انگیز طرف هستم
این ستاره ها تقدیم شما هر چند واقعا کم هست
با آرزوی موفقیت و شادکامی روز افزون برای شما و مجموعه هم رویش
مصطفی آصفی –
سلام و بسیار ممنون که برای ابراز لطف خودتون وقت گذاشتید.
امیدوارم این آموزش سهمی در پیشرفت تخصصی شما داشته باشه.
انشالله که موفق باشید.