طراحی اپلیکیشن موبایل با هشت قدم ساده
[ سه شنبه 10 تير 1399 ] 18:09 ] [ علی پور ]
[ ]
مرجع مقالات رسمی طراحی اپلیکیشن |
طراحی اپلیکیشن موبایل با هشت قدم سادهپباده سازی نرم افزار گوشی جز آن جور از خدماتی میباشد که مستلزم خلاقیت و تجربه ی بالایی میباشد. از همین روی نمی قدرت پباده سازی آن را به هرکسی سپرد. در پباده سازی یک نرم افزار استاندارد بایستی پارامترهای مختلفی را رعایت کرد تا از جانب یوزرها موردپسند قرار بگیرد. این پارامتر ها تمامی کیفی بوده و طراحي اپليكيشن آموزشي در مشهد رعایت آنان موجب بهبود تجربه استفاده کننده از حضور در نرم افزار شما میگردد. این پارامتر ها عبارت اند از: بی آلایش و شل بودن کاربردی بودن عدم وجود اشتباه (Error) رضایت بخش بودن تمام مورد ها بیان شده می بایست یک جا و در کنار هم وجود داشته باشند و صرفا رعایت یک کدام از آنان نمی تواند استاندارد لازم را به شما ارائه دهد. ولی درین نوشتهعلمی ما میخواهیم هشت قدمی را که می بایست برای پباده سازی نرم افزار تلفن همراه استاندارد گردیده بردارید؛ برای شما شرح دهیم. پباده سازی نرم افزار تلفن همراه پباده سازی نرم افزار گوشی استاندارد با هشت گام معمولی ۱- برای کاربرانتان بها قائل گردید احترام به استفاده کننده اولی رُکنی میباشد که در پباده سازی نرم افزار تلفن همراه بایستی آن را رعایت نمائید. بهبود تجربه ی استفاده کننده نسبت به به کارگیری از نرم افزار قادر است این رُکن را تا حد متعددی برای شما پابرجا نگه داراست. امروزه با وجود تنوع بالا در UX نرم افزار ها وجود یک تجربه ی خوب میتواند یوزرها را معتاد اَپ شما نماید. مثلا نباید فورا بعداز ورود استفاده کننده به اپلیکشنتان از وی بخواهید که به اَپ شما امتیاز دهد. اذن دهید استفاده کننده در اَپ شما به گشت و گذار بپردازد. در حالتی که رضایت وی جلب شود احتمال اینکه به نرم افزار شما امتیاز دهد و حیث خویش را در زمینهی آن بنویسد بسیار بالاست. پس یادتان باشد؛ برای مخاطب خویش احترام قائل گردید. ۲- دسترس بودن نرم افزار گوشی در وضعیت آفلاین خلل اکثری از نرم افزار ها این میباشد که در فیس نبود وب، سعی خویش را از دست میدهند. اما صحت دارد که نمی اقتدار کلیه ی سرویس ها نرم افزار را در وضعیت آفلاین ارائه اعطا کرد. البته می قدرت بخش هایی نیز در نرم افزار در لحاظ گرفت تا در چهره نبود وب بتوان از این قسمت های بهره مند شد. این زمینه به شما یاری می نماید که رضایت کاربرانتان را تا حد بسیار متعددی ارتقا دهید و افزون بر آن وفاداری آنان را نیز به دست بیاورید. ۳- تعریف و تمجید ماژول و فراگیری روش ی فعالیت با آن برای اینکه نرم افزار ماهر تری داشته باشید؛ بهتر میباشد وظایف قدم به گامی که برای کاربرانتان تمجید نموده اید را به طور یک ماژول به آنها اکران دهید. اما در کنار این، می بایست یادگرفتن طریق ی عمل با ماژول را نیز در چنگ آنان قرار دهید تا مخاطبینتان در گیر سردرگمی نشوند. رعایت این پارامتر به شما یاری میکند تا اپلیکیشنتان ماهر خیس و شکیل خیس به لحاظ رسد. ۴- سرعت بالای نرم افزار تمامی ی کاربرانی که از نرم افزار شما به کار گیری می نمایند؛ دوست داراهستند تا کارشان در کمترین عصر صورت بپذیرد. همین فاکتور ظاهرا بی آلایش علت برتری بخش اعظمی از رقبا نسبت به یکدیگر بوده و این نشان میدهد که سرعت بالای نرم افزار ها چه موضوعی مهمی میباشد. مخاطبین شما زمانی ببیند که برای وقت آنها قیمت قائلید به شما متعهد میمانند به نحوی که می اقتدار از این نحوه تعداد مشتریان اثبات را تا حد متعددی ارتقا بخشید. ۵- امکان بازیابی داده ها استفاده کننده برای هر کسی ممکن میباشد پیش بیاید که اسم کاربری و یا این که راز عبورش را قراموش نماید. از همین روی وجود یک سیستم بازیابی خود کار میتواند بسیار به فعالیت مخاطبانتان بیاید. این سیستم به یوزرها شما یاری میکند تا بتوانند سوای هیچ نگرانی داده ها حیاتی خویش را بازیابی نمایند و دیگر نگران گم شدن و یا این که فراموش شدن پسوردشان نباشند. این قابلیت و امکان در اکثر اَپ های مدرن موجود هست؛ پس بهتر میباشد شما نیز از آن در نرم افزار خویش به کارگیری فرمائید. ۶- انجام آزمایش A/B برای در دست گرفتن کیفی در اولِ پباده سازی نرم افزار گوشی خویش به کارگیری از آزمایش A/B بسیار حائذ اهمیت میباشد. این آزمایش به شما نشان میدهد که چه پِلنی برای اپلیکیشنتان اجرا فرمایید تا حداکثر بازدهی را بدست آورید. معمولا پس از اینکه نرم افزار شما عرضه میگردد خلق مخاطبین با یکدیگر فرق داراست چون آنان نمی دانند که از نرم افزار شما چهگونه به کار گیری نمایند. از همین روی آزمایش A/B میتواند با اعتنا به اخلاق یوزرها اَپ شما، داده ها خوب و مفیدی در اختیارتان قرار دهد. ۷- تمرکز بر روی تعامل با یوزرها شما می بایست برای خویش معین نمایید که میخواهید از چه طریقی با مخاطبینتان تعامل داشته باشید. تارنما یا این که نرم افزار؟ اینکه شما پیوند های مختلفی در اپلیکیشنتان تمجید فرمائید و دائماً همت داشته باشید کاربرانتان را به تارنما پاس دهید؛ ابدا استراتژی صحت وجود ندارد. این عمل سبب میشود استفاده کننده آنطور که بایستی در اپلیکیشنتان حضور نداشته باشد و زمان عصر حضور وی در اینترنت سایتتان نیز به مقدار کافی نباشد. استراتژی صحیح درین مواقع به کارگیری از مرورگر داخلی در نرم افزار میباشد. این فعالیت سبب میشود تا استفاده کننده از اَپ بیرون نشود و در عین درحال حاضر از سایت شما نیز دیدن نماید. [ سه شنبه 10 تير 1399 ] 18:09 ] [ علی پور ] [ ] پباده سازی نرم افزار حرفه ایطراحي اپليكيشن فروشگاهي در مشهد نرم افزار فروشگاهی طراحی اپلیکیشن حرفه ای در دنیایی که فضای تکنولوژی و دیجیتال،سرشار از نرم افزار ها و اپلیکیشن هاست،طراحی اپلیکیشن ،یکی از وسیع ترین دغدغه افرادیست که میخواهند کسب و عمل خود را دراین صنعت رو به پرورش گسترش دهند.باتوجه به توسعه و گسترش فراوان طراحی اپلیکیشن اندروید و ios پیدا کردن افراد متخصص که بتوانند به خیر اقدام به برنامه نویسی و طراحی اپلیکیشن بپردازند،طاقت فرسا شده است.بخش اعظمی از موسسات گسترش دهنده ی اپلیکیشن ها ممکن است در سال حتی بیش تر از بیست تا سی اپلیکیشن نیز به بازار عرضه کنند. اکثر گجت هایی هم که امروزه ساخت میشوند باید با یک اپلیکیشن کنترل شوند.بسیاری از اسباب خانگی تازه تنها از طریق یک اپلیکیشن بر روی گوشی هوشمند شما قابل کنترل میباشند،از این رو دراین نوشتهیعلمی عملکرد داریم شما را با مراحل ایجاد اپلیکیشن حرفه ای آشنا کنیم به این دلیل که مجموعه ویستا با داشتن دانش فنی و تجربی خود همواره می کوشد که بهترین خدمت را به مشتریان خود ارائه دهد.گروه برنامه نویسی،طراحی و همچنین پشتیبانی ویستا همواره کارایی کرده اند با استعمال از بروزترین متود ها،رضایت مشتریان خود را محافظت کند. چرا اپلیکیشن ؟! معمولا در زمان روز چند دفعه از اپلیکیشن های متعدد به کارگیری میکنید ؟!برای درخواست آژانس،اپلیکیشن تاکسی ! برای درخواست فرآورده،اپلیکیشن فروشگاهی !برای نیاز های حسابداری،اپلیکشین حسابداری!اساسا اپلیکیشن ها تاثیر بسیار زیادی بر روی کسب و کار مختلف و در موضوع های گوناگون نهاده می باشد به این دلیلکه گوشی های هوشمند غالبا در دسترس کاربران است و در اصل اپلیکیشن های تلفن همراه منجر تعامل هرچه بیشتر کاربران(مشتریان و عرضه کنندگان)میگردد. شاید برای شما سوال پیش بیاید که چهگونه تنها با طراحی اپلیکیشن حرفه ای می توان طولانی تر در دسترس مشتریان باشید! در اینجا بایستی به شما تاثیر اعلان هایی که اپلیکیشن برای کاربر تلفن هوشمند ارسال مینماید را یادآوری کنم. ارسال یک پیام منجر مراقبت ارتباط با مشتری میگردد و به او یاداوری میکند که شما همیشه در دسترس هستید که خود از نگاه روانشناسی تاثیر بسیار زیادی بر روی کاربران دارد. در پی به 4 ادله مهم برای استفاه از این دور و بر بوجود آمده برای توسعه کسب و عمل اشاره میکنیم؛ تلفن هوشمند،بخش جداناپذیر از زندگی افراد تلفن های هوشمند بخشی از زندگی روزانه مردم شده اند. محال می باشد که فارغ از تلفن هوشمند مان از خانه خارج شویم و در شرایطی که که فراموش کرده باشیم و تلفن خود را به همراه نداشته باشیم ، کل روز کلافه خوا هیم بود و نبود دستیار شخصی خودمان را شم خوا هیم کرد. دستیار شخصی که فعالیت های روزانه مان را یادآوری میکند ، با اپلیکیشن های حسابداری خرج و مخارجمان را ثبت می کنیم، ماشین کرایه ای آنلاین می گیریم ، از طریق توصیه آنلاین غذا می گیریم و از فروشگاه اینترنتی مورد نیاز خود را سفارش می دهیم. تمامی این کار ها را می توانیم با تلفن همراه هوشمند و انواع اپلیکیشن موبایل انجام دهیم در حالی که به دیگر کارهای روزانه رسیدگی می کنیم. علاوه بر این محدودیت زمانه و مکان است که با وجود اپلیکیشن های هوشمند در حال از میان رفتن میباشند. با طراحی اپلیکیشن حرفه ای قابلیت بازاریابی در طرز های متنوع فراهم خواهد شد امروزه صاحبان کسب و کارهایی که به اهمیت وفادارسازی پی برده اند ، یک سری پله از دیگر کسب و عمل ها جلوتر خواهند بود.احتمالا پیش از این با طراحی اپلیکیشن های شرایط محور و خدماتی آشنا شده باشید . اما آیا می دانستید که طراحی اپلیکیشن وضعیت محور میتواند با اهداف بازاریابی و وفادارسازی مشتری نیز یاروهمدم باشد؟ تصور کنید که مشتری شما اپلیکیشن شما را بر روی تلفن همراه هوشمند داشته باشد و در وضعیت مکانی نزدیک به شما باشد اعلان هایی برایش ارسال شود و به او پیشنهادات ویژه ای را ارائه دهد. این می تواند سبب برگشت مجدد مشتری به تیم شما شود و یک طرز بازاریابی برای کسب و عمل شما باشد. [ يکشنبه 25 اسفند 1398 ] 11:26 ] [ علی پور ] [ ] استفاده از اپلیکیشن ها در دنیای الکترونیکیبه کارگیری از نرم افزار ها در دنیای الکترونیکی امروز امری فراروگریز ناپذیر میباشد. از درخواست آژانس، توصیه طعام، تراکنش های مالی، انجام اشکال مبادلات، تولید ویدیو، افکت های تصویری و غیره، درین بین یوزرها نرم افزار هایی را بیش تر گزینش مینمایند که خصوصیت های خاصی نسبت به بقیه اپلیکیشن های حریف داشته باشند. با دقیق گرافیک همپا باشید. شایسته ترین گزینه هایی که می قدرت در تولید یک نرم افزار ماهر در حیث گرفت به شرح تحت میباشد : انگیزه و مخاطب نرم افزار چه کسی است؟ سوالی که خیر فقط برای پباده سازی نرم افزار، بلکه برای پباده سازی پوستر ، کاتالوگ و بقیه پباده سازی ها در مرکز می بایست قرارداد، این میباشد که انگیزه و مخاطب نرم افزار وقتی که یک طراح بداند یک نرم افزار برای چه مجموعه سنی، اجتماعی و فرهنگی پباده سازی میشود، تمام خصوصیت های یک نرم افزار را می بایست در حیث بگیرد . بعنوان نمونه اکثری از نرم افزار ها که مخاطب شان عامه مردم می باشند، بایستی برنامه ای را ارائه دهند تا همگان بتوانند گزینه استعمال قرار دهند. نصب و اجرا و کارکرد نرم افزار به توضیح و یا این که یادگرفتن نداشته باشد و یا این که درصورتیکه نرم افزار برای منزلت های سنی تحت میباشد، می بایست رنگ و پباده سازی متناسب با سن نوباوه و نوجوان و برای بزرگسالان و یا این که دسته عمل کرد نرم افزار برای منزلت های کاری و اجتماعی قالب مخصوص به خویش را دارااست که می بایست جدیت و اصول رنگ کردن در آن رعایت گردد. دراین حالت مخاطب به سادگی و مشتاقانه با نرم افزار متبوع فعالیت خواهد کرد. حجم نرم افزار مطلوب باشد وقتی که نرم افزار حجم متعددی از فضای دیوایس را اشغال نماید، حتما محدودیت هایی را برای آن دیوایس ساخت خواهد کرد و از طرفی ممکن میباشد نسبت به گنجایش های متفاوت ابزارهای کاربردی، تولید هنگ و بهم ریختگی عمکرد آن شود . در اینصورت با حذف نرم افزار از سوی استفاده کننده مواجه خواهد شد. کهاین خویش میتواند یک امتیاز منفی پهناور باشد. لوگو و اسم نرم افزار همان طور که در ابتدا هم ذکر شد، علاوه بر خصوصیات داخلی نرم افزار ویژگی ها بیرونی نیز بایستی مطابق با ترازو های پباده سازی نرم افزار باشد. اسم و دسته پباده سازی لوگو خویش میتوانند منجر جذب و جلب اعتنا یوزرها گردد . آپ دیت رسانی تر و تمیز و زمان ای هر روز ممکن میباشد نیاز استفاده کننده از یک نرم افزار نسبت به گذشته تغییرو تحول نماید و یا این که ارتقا یابد . یک طراح ماهر بایستی نیاز های روز بازار، یوزرها و نیازهای نرم افزار ها برای افزایش زمان ای را بداند و نسبت به آن شایسته ترین پیاده سازی را داشته باشد . ساخت اپلیکیشن در دو ورژن آیفن و اندروید هر چه قابل انعطاف افزاری دراین دو ورژن از روش پرتال های دارای اعتبار طولانی تر در چنگ یوزرها قرار گیرد، سرعت معرفی و شناخته شدن به وسیله یوزرها بسیار زیاد خواهد شد. در فیض آموزش و سرعت نشر نرم افزار همگی جانبه زیاد خواهد شد. [ شنبه 24 اسفند 1398 ] 10:52 ] [ علی پور ] [ ] پباده سازی نرم افزار اندرویدطراحي اپليكيشن فروشگاهي در مشهد پباده سازی نرم افزار اندروید نوین پدیا - هزینه و سرویس ها پباده سازی نرم افزار اندروید نوین پدیاnovinpediaپباده سازی نرم افزار اندروید نوین پدیا با ارائه شایسته ترین و معدود هزینه ترین سرویس ها و پشتیبانی حقیقی وواقعی - نوین پدیا در سه مرحله نرم افزار اندروید شما را پباده سازی مینمایدnovinpedia.irسیستم دلیل تلفن همراههمگی این ابزارها که در دسترس شما قرار گرفته اند نرم افزار گوشی یا این که اپلیکیشن تلفن همراه اسم داراهستند که ممکن میباشد براساس مدل سیستم دلیل یک تلفن همراه یار و همدم، برای اجرا مستلزم بستر و سیستم دلیل مایحتاج خویش باشند. یک نرم افزار تلفن همراه ممکن میباشد بر مبنا سیستم ادله اندروید باشد که دراینصورت بهاین اپلیکیشن اصطلاحاً نرم افزار تلفن همراه اندروید میگویند، یا این که ممکن میباشد سیستم عاملی کهاین اپلیکیشن را مدیر می نماید برپایه IOS باشد که در این صورت به آن نرم افزار IOS یا این که نرم افزار اپل میگویند. برای دیگر سیستم کارداران همانند ویندوز فون، بلک بری، جاوا، سیمبین و غیره نیز نرم افزار هایی بسته به جور بستر سیستم استدلال پباده سازی شدهاست. گسترش دهندگان نرم افزار تلفن همراه، همانگونه که عملکرد کرده اند براساس دستگاه های گوناگون نسخه های متفاوتی از اپلیکیشن را ارائه دهند، برای سیستم ادله های مختلفی که ممکن میباشد بر روی تلفن همراه به فعالیت رود نیز همت مینمایند به ایجاد و پباده سازی نسخه های مختلفی از یک نرم افزار گوشی بپردازند. نرم افزار ها دراینترنت یا این که مغازه های اینترنتی به راحتی قابل دسترس میباشند، طولانی تر قابل انعطافافزارهایی که ما در حین روز از آنان استعمال میکنیم جزو این تعریفوتمجید محسوب میگردند. با ارتقاء بسیار زیاد تعداد نرم افزار ها، گوگل تصمیم گرفت تا برای راحتی یوزرها در مغازه گوگل پلی و همینطور یاری برنامه نویس ها نوع بندی های را تولید نماید. یوزرها تولیدات کمپانی اپل نیز که دارنده سیستم برهان iOS میباشند،که می توانند برای دانلود نرم افزار از خدمت App Store کمپانی استعمال نمایند. دراین خدمت هزاران نرم افزار برای به کار بستن موجود هست. برای مثال قابل انعطافافزار تلگرام، فتوشاپ، گوگل کروم، اینستاگرام و یا این که بازیهای کامپیوتری تمامی نرم افزار های جان دار دراین فروشگاهها میباشند. درپی در رابطه دو سیستم ادله پر استفاده موبایلی اندروید android و سیستم دلیل ios توضیحاتی خدمتتون پهنا میکنیم..... برای تلاوت ادامه نوشتهعلمی و شناخت با دو سیستم استدلال پر کاربرد اندروید و IOS و همینطور دیدن بقیه مقاله ها و بخشهای وبسایت نوین پدیا به نشانی پایین رجوعکنید: برچسب ها: طراحي اپليكيشن فروشگاهي در مشهد , [ بازدید : 10 ] [ چهارشنبه 21 اسفند 1398 ] 11:54 ] [ علی پور ] [ ] اینترنت نرم افزار (Webapplication):طراحي اپليكيشن فروشگاهي در مشهد می اقتدار خاطرنشان کرد که تاکید تارنما بر محتوا میباشد البته اینترنت نرم افزار بر فعالیت و تعامل توکل دارااست. تعریف و تمجید مختصر و کوتاهی را دربارهی سایت و اینترنت نرم افزار داشته باشیم و امیدوارم در آخر بتوانید برداشتی اثرگذار از تفاوت وبسایت با اینترنت نرم افزار چه می باشد داشته باشید و در چهره نیاز به پند و اخذ داده ها اضافه از نصیب تماس با ما با کارشناسان رهام اینترنت تماس بگیرید. وبسایت(Website): وبسایت فضایی میباشد در وب که یک یا این که یک سری برگه را در خویش جا داده میباشد. ساخت سایت یک مقاله را برای همگی بطور یکسان اکران میدهد همان گروه از صفحه ها اینترنت متصل بهم میباشد که مشتمل بر یک ورقه اصلی است و معمولا روی یک سرور قرار داراهستند و تحت عنوان گروه ای از داده ها به وسیله یک شخص، تیم یا این که سازمان تنظیم و محافظت میشود. وبسایت ها بر محتوا توکل دارا هستند.برای داشتن یک وبسایت الزاما نیاز به نظارت خاصی وجود ندارد و به راحتی می قدرت با نصب یک رئیس محتوا یک وبسایت داشت. اینترنت نرم افزار (Webapplication): اینترنت نرم افزار قابل انعطاف افزاری میباشد کاربردی که بوسیله یک مرورگر پشتیبانی می گردد و بعداز تجزیه بررسی و باز بینی یک گروه و معلوم کردن ظریف نقش ها ، عملکردها ، کار گرها و روال ها برای آن تیم پباده سازی میگردد و قابل ارائه در کانال داخلی و وب هست اساساً مبنی بر محتوا نیستند و در آن ها کارایی مهم هست. اینترنت نرم افزار ها بر مبنای داده و رفتارها توکل داراهستند و بعد از ارزیابی رفتارها و سرویس ها پباده سازی می گردند و ساختاری تعامل پذیر داراهستند. شایان ذکر میباشد که اینترنت نرم افزار در بستر برنامه ذیل کانال فعالیت مینماید. تفاوت دوم همان بحث ماهیت فیزیکی و مجازی است که بین سایت و اپلیکیشن وجود دارد. در سایت کاربر آنچه که در محیط نت وجود دارد را میتواند مشاهده کند و از آن استفاده کند ولی در مورد اپلیکیشن باید یک فایل بر روی سیستم بارگزاری شود تا بتواند آن را مشاهده کند. اگر بخواهیم بهتر توضیح دهیم لازم به ذکر است که ما در سایت حتما نیاز به اینترنت داریم و نمیشود بدون نت مطلبی را مشاهده کرد ولی در مورد اپلیکیشن همین که یک فایل بر روی سیستم باید بارگزاری شود این یعنی میتوان همراه فایل اطلاعاتی را به صورت آفلاین به سیستم داد که فرد به صروت آفلاین نیز به برخی مطالب دسترسی خواهد داشت. اپلیکشین موبایل درشیراز پس می توان گفت که تاکید وب سایت بر محتوا می باشد ولی وب اپلیکیشن بر عمل و تعامل تکیه دارد. یک وب سایت یک مطلب را برای همه بطور یکسان نمایش می دهد ولی برای مثال، یک وب اپلیکیشن ارتباط با مشتری باتوجه به ویژگی هایی که در اثر تعامل با کاربر کسب کرده، اطلاعات را پردازش می کند و مطلبی را به کاربر نمایش می دهد که مورد نیاز آن کاربر است و به سلیقه، سن، توانایی مالی و جنسیت او بسیار نزدیک است و این مطلب متفاوت با مطلبی است که به یک کاربر دیگر نمایش می دهد. وب سایت ها بر محتوا تاکید می کنند اما وب اپلیکیشن ها بر عملکرد و کارکرد تمرکز دارند. وب سایت، یک مطلب را برای همه به طور یکسان نشان می دهد اما یک وب اپلیکیشن بر اساس تعاملاتی که با کاربر داشته است، اطلاعات را پردازش می کند و به کاربر نمایش می دهد. یعنی مطالب نمایش داده شده برای هر کاربر بر اساس سن، علاقه، جنسیت، و... متفاوت با دیگر کاربران است. یک کاربر برای اینکه بتواند اطلاعات یک وب سایت را مشاهده یا از آن استفاده کند، بایستی حتما به اینترنت متصل شود اما در وب اپیلیکیشن این چنین نیست. تنها یک بار کافی است تا وب اپلیکیشن بارگذاری شود، سپس کاربر می تواند به صورت آفلاین هم به آن دسترسی داشته باشد. ویژگی های وب اپلیکیشن 1.حفظ یکپارچگی بر روی دستگاه های مختلف 2.ذخیره سازی داده ها روی کامپیوتر یا یک فضای ابری به صورت محلی 3.قابلیت طراحی به زبان های مختلف 4.سرعت، دقت و عملکرد عالی وب اپلیکیشن ها 5.قابلیت خوب اجرا بدون نیاز به نرم افزار جانبی [ سه شنبه 20 اسفند 1398 ] 9:38 ] [ علی پور ] [ ] اپلیکیشن های اندروید چطور اپ هایی هستند5 سایت بدونپول برای ایجاد برنامههای اندرویدیچهطور برنامههای اندرویدی را بدون کدنویسی و به نحوه آنلاین ایجاد کنیم؟شیوه درست توسعه اپلیکیشن را خاطر بگیرید پس از اینکه اطلاعات کافی را درباره موضوعات دارای ارتباط به مراحل توسعه اندروید به دست آوردید، باید به سراغ مرحله بعدی که همان پیدا کردن روش درست یادگیری گسترش اندروید می باشد، برويد.موردهای متعددی برای یادگیری آنلاین، با گونه های ماژولهای متفاوت برای یادگیری درسهای خاص موجود هست. در جستجوهای خود باید پیرو مفیدترين آنها که متناسب با نیازتان است، باشید. موقتی، آموزش الکترونیک پرکاربردترین نحوه شناختهشده برای یادگیری توسعه و گسترش اپلیکیشن می باشد. انجمنهای اینترنتی متعددی در این زمینه وجود دارد که میتوانید در آنان بهراحتی و رایگان از تجربههای سایر افراد به کار گیری کرده و پرسشهای احتمالی خود را بیان نمایید. متمرکز شدن روی مهارتهای فنی عمل راحتی می باشد، ولی فراموش نکنید که توسعه و گسترش اپلیکیشن علاوه بر دانش فنی به مهارتهای غیرفنی نیز نیاز دارد. افراد جویای عمل زیادی هستند که با وجود دانش کافی در مورد برنامهنویسی اندروید، بضاعت کافی را برای برقراری ارتباط و همکاری با یک گروه ندارند. همکاری و مشارکت با یک تیم کاری در اکثری از موارد برای یک توسعه و گسترشدهنده ضروری می باشد. حتی درصورتیکه شما بهتنهایی روی یک جنس درگیر فعالیت هستید، به مشارکت و همکاری دیگرافراد درون سازمان نیاز خواهید داشت. بعضی وقتها با طراحان، زمانی با رئیس و گاهی اوقات با کاربر نهایی، مهم است که همیشه در کار خود با دیگرافراد مشورت نمائید. همیشه تلاش فرمایید کاری را که در حالا انجام آن میباشید، با اعتنا هرچه تمامتر بهاعتنا برای افراد فنی یا افراد غیرفنی توضیح دهید و از واکنش بقیه افراد و مباحثه با آنها استقبال کنید. و در نهایت ...بعد از اینکه شما روش ساخت اپلیکیشن را در اندروید خیال و خاطر گرفتید می بایست بهترین نحوه پول درآوردن از این مهارتها را پیدا نمایید. نحوهها و استراتژیهای متعددی وجود دارد که بسط اندروید را به یک فن سودآور تبدیل کند. معمولیترين رویه این می باشد؛ بهدنبال شغلهایی باشید که به دانش شما در سیستمدلیل موبایل نیاز دارد، شغلی که قابلیت و امکان پیشرفت در آینده را داشته باشد. همچنین می توانید روی پروژههای منحصر به فرد خود بهعنوان یک توسعهدهنده غیر وابسته کار نمائید. سریعترین روش برای نشان دادن مهارتتان به یک کارفرما این است که یک اپلیکیشن فراهم حقیقی و واقعی به نام خود در گوگلپلی داشته باشید. معمولا کارفرمایان به پروژههای عملی انجامشده در گذشته بسیار اهمیت میدهند. لازم نیست یک پروژه پهناور و چشمگير را در کارنامه خود داشته باشید. حتی یک اپلیکیشن عادی منتشرشده در گوگلپلی می تواند نشاندهنده دانش شما درباره چرخه کاری بسط اپلیکیشن باشد.
برچسب ها: طراحي اپليكيشن فروشگاهي در مشهد ,
[ بازدید : 10 ]
[ دوشنبه 19 اسفند 1398 ] 11:19 ] [ علی پور ] [ ] اکوسیستم نرم افزار تلفن همراهطراحي اپليكيشن فروشگاهي در مشهد 10- عدم ارسال آدرس اینترنتی فردیسازی گردیده اسم نرم افزار، بها، و تجهیزات آن 11- عدم ترغیب استفاده کننده به اشتراکگذاری
تودهبندی [ شنبه 17 اسفند 1398 ] 10:17 ] [ علی پور ] [ ] نادرست های ناشی از روش اندازهگیری نصبغلط های ناشی از شمارش نصب (بر پایه ی استفاده کننده/ بر طبق دستگاه) نصب در پلتفرم اپل و گوگل بر طبق شناسه حساب یوزرها شمرده میشود، در حالیکه پلتفرمهایی نظیر ادجاست مبنی بر شناسه تبلیغ(Advertising ID) یا این که شناسه دستگاه (Device ID) شمارش را انجام می دهد. برای مثال، مانند تصویر بالا فرض نمایید که استفاده کننده هم تلفن همراه و هم تبلت دارااست و هر دو دستگاه دارنده یک شناسه شبیه میباشد. استفاده کننده در هر دو دستگاه یک نرم افزار شبیه را نصب مینماید. ادجاست این حادثه را ۲ نصب میشمرد؛ زیرا ۲ شناسه تبلیغ اخذ مینماید. به جهت دسترسی به داده ها حساب کاربری، اپل و گوگل این رخداد را ۱ نصب میشمرد. غلط های مرتبط با برهه زمانی Attribution window در گردهمایی نهم بازاریابی نرم افزار، در رابطه معنا attribution window سخن کردیم. Attribution Window، بازه میباشد که فی مابین تبلیغدهنده و گسترشدهنده گزینه توافق قرار گرفته میباشد. در شرایطیکه که استفاده کننده بعداز مشاهده یا این که کلیک بر روی تبلیغ، در آن بازه نرم افزار را نصب نماید یا این که روی داد متبوع تبلیغدهنده را انجام دهد، پرداخت به گسترشدهنده انجام می شود. این مقطع، در وضعیت پیشفرض برای هر پلتفرم، مقدار مشخصی دارااست. این برهه زمانی در برخی از پلتفرمها قابل تغییر و تحول و در بعضی دیگر همواره اثبات میباشند. یک کدام از دلایلی که ممکن میباشد بخواهید این برهه زمانی را تغییرو تحول دهید، اختلاف آن با بقیه پلتفرمها میباشد. این تفاوت برهه زمانی، منجر ساخت تضادومغایرت دربین دادهها می شود. برای برطرف کردن این ایراد، میقدرت attribution window را مطابق بقیه پلتفرمها تغییر و تحول بخشید. فرض نمائید که مانند تصویر بالا، مدت Attribution window، هفت روزه میباشد. یک استفاده کننده، روی یک اطلاع رسانی تبلیغاتی تبلیغ میکند، البته به دلایلی فراموش میکند که اپ را دانلود نماید. در قبال، نرم افزار مربوطه را ۳ روز بعداز کلیک روی اطلاع رسانی نصب مینماید. این نصب به جهت قرار به چنگ آوردن در برهه زمانی ۷ روزه، شمره میگردد. ولی در صورتیکه که استفاده کننده، ۸ روز بعداز کلیک روی اطلاع رسانی تبلیغاتی، اپ را نصب نماید، به جهت قرار به دست آوردن در محدوده وقتی بیرون از attribution window، شمرده نمی شود. Deep linking چه است و چراباید ازآن بهره برد؟ نادرست های ناشی از روش اندازهگیری نصب این مدل اشتباه در کمپانیهای بزرگی، نظیر گوگل ، فیسبوک،یاهو و توئیتر، رایج میباشد. به طور کاملً طبیعی میباشد که هر کانال تبلیغات دیجیتال بخواهد نصبها را به خویش نسبت دهد، البته نقص اینجاست که هیچ یک از آن ها در رابطه بقیه کانالهای تبلیغاتی اطلاعی ندارند. به عبارت دیگر، یک استفاده کننده یا این که یک نصب ممکن میباشد به یکسری کانال تبلیغاتی اختصاص داده شود که دراین حالت، سبب ساز یک سری برابر شدن هزینه تبلیغدهنده میشود. اینجا، لحظهای میباشد که حضور یک پلتفرم بی طرف مانند کمپانیهای attribution، نقش مهمی را ایفا می کند. پلتفرمهایی نظیر ادجاست، کلیه کلیکهای پیش آمده در درون attribution window را تثبیت می نماید و نصب را به آخری کلیک اختصاص میدهد. فرض نمایید که مانند تصویر بالا، یک استفاده کننده در ساعت ۷ بعدازظهر، روی یک اطلاع رسانی تبلیغاتی در گوگل ادوردز کلیک مینماید، البته نرم افزار را نصب نمینماید. آن گاه، در ساعت ۸ بعدازظهر، روی یک اطلاع رسانی تبلیغاتی فیسبوک کلیک می کند و نرم افزار را دانلود مینماید. در هر دو داشبورد گوگل ادوردز و فیسبوک، یک نصب تثبیت میشود، ولی پلتفرم attribution، این نصب را به جهت اینکه آخری کلیک وابسته به فیسبوک بوده، به فیسبوک اختصاص میدهد. این مقاله را هم بخوانید: راهکارهای ارتقاء دانلود نرم افزار نادرست های ناشی از تفاوت در وضعیت وقتی و شرایط جغرافیایی روشی که ادجاست و برخی دیگر از پلتفرمهای Attribution در رابطه شرایط هنگامی و جغرافیایی نصب نرم افزارها به کار گیری مینمایند، معمولاً با بقیه پلتفرمها (گوگل و اپل) مختلف میباشد. در واقع، گوگل و اپل مبنی بر وضعیت جغرافیایی حساب یوزرها تصمیم می گیرند، در حالی که، ادجاست، حالت جغرافیایی یوزرها را بر پایه ی نشانی IP یوزرها هنگام نصب اعلام مینمایند. مانند تصویر بالا، فرض فرمائید که حساب کاربری اپ استور، ایتالیایی باشد، ولی استفاده کننده هنگام نصب نرم افزار در مرز و بوم فرانسه باشد، اپل و گوگل، نصب یا این که دانلود نرم افزار را به ایتالیا و ادجاست، نصب را به فرانسه اختصاص میدهد. یک کدام از دیگر از عوارض این اشتباه، استعمال از VPN هنگام دانلود و نصب نرم افزار میباشد. VPN منجر تغییر تحول نشانی IP یوزرها میگردد. به همین ادله میباشد که گهگاه در شرایط جغرافیایی اعلام گردیده بوسیله پلتفرمها، اختلافاتی مشاهده میشود. ولی، این آیتم به حق تقدمها، معیارهای گزینه بازنگری و هدف ها شما بستگی داراست. برای مثال، ممکن میباشد حالت جغرافیایی حساب استفاده کننده برای شما مهم باشد، یا این که تنها پیرو کشف کردن وضعیت جغرافیایی استفاده کننده هنگام نصب نرم افزار می باشید. [ چهارشنبه 14 اسفند 1398 ] 12:39 ] [ علی پور ] [ ] سئو نرم افزار برای اپ استور ها (ASO) چه میباشد؟سئو نرم افزار برای اپ استور ها (ASO) چه میباشد؟ ASO با اسم های بازاریابی اپ استورها و سئوی نرم افزار های تلفن همراه نیز شناخته می گردد. انگیزه اصلی ASO بهبود رنک نرم افزارهای تلفن همراه در اپ استورها (آیتونز، گوگل پلی و ویندوز استور) هست. به بیانی دیگر، « ASO به گروه ای از تکنیک ها گفته میگردد که مقام نرم افزار را در موتورهای کاوش بهبود می بخشد و در فیض معیار دانلود آن بالا میرود ». نسبتاً تمام وقت ها انگیزه اصلی ASO ارتقاء واحد سنجش دانلود نرم افزار ها میباشد. هدف ها دیگر میتواند دربرگیرنده مورد ها تحت بشود: شناساندن مارک به چنگ آوردن عیب گیری و ریت مثبت برای نرم افزارها برقراری رابطه خوب مخاطبین با نرم افزار از لحاظ کارکرد، بهینه سازی و ASO در مورد ها اکثری با هم شباهت داراهستند. اپ استورها در واقع نوعی موتور جستجوی محدود میباشند که کاوش در آنها به دست اندرکاران تحت بستگی دارااست: جستن ریلکس محتوا ایندکس شدن الگوریتمهای رنک نرم افزار (کیفیت اپ، طراوت، رنک مارک، ایده ها یوزرها) به عبارتیطور که مشاهده میکنید، این فاکتورها در تکنیکهای seo موتور های کاوش نیز یافت میگردند. بهدنبال طریق seo اپلیکشن برای اپ استورها را برای شما شرح میدهیم. شیوه seo اپلیکشن برای اپ استور ها (ASO) 1.شیوه پیداکردن کلید کلمه و واژه مطلوب برای seo نرم افزار یکی مهمترین جنبههای بهبود رنک نرم افزار و seo نرم افزار برای اپ استورها گزینش کلیدواژهها میباشد. در فیض، تکنیکهای شما برای انجام ASO بایستی با گزینش کلیدواژههای مطلوب برای نرم افزار مقدمه شود. ایده برای کلیدواژه های اپ استور ها برای آغاز، کارایی نمایید که دست کم 50 کلیدواژه برای نرم افزار خویش پیدا نمائید. برای این فعالیت میتوانید از ابزارهایی استعمال فرمایید که برای نرم افزار شما کلیدواژه توصیه میدهند. خبر خوب این میباشد که اضافه این ابزارها بدون پول می باشند. ابزارهایی مانند Google Keyword Planner و Appkeywords.io آیتمهای قابل قبولی میباشند. به خیال و خاطر داشته باشید که کلیدواژههای شما می بایست با اپلیکیشنتان دارای ربط باشند. هیچوقت وسوسه نشوید که از کلیدواژههایی به کارگیری فرمایید که بسیار پرطرفدار میباشند اما با اپ شما دارای ارتباط نیستند. به خیال داشته باشید که شما در ادامه این می باشید که نهایتا یوزرها اپ شمارا دانلود نمایند و از فعالیت با آن لذت ببرند. آیا می دانستید لغات مستعمل در بخش نظرها یوزرها در موتور جستجوی اپ استورها ایندکس می گردند؟ به همین استدلال میباشد که بازبینی بخش ایده ها یوزرها جای قابل قبولی برای یافتن کلیدواژه میباشد چون دراین بخش میتواند با آن چه در ذهن یوزرها میگذرد آشنا گردید. کلیدواژه های خویش را سئو نمائید حالا که تیمای از کلیدواژههای دارای ارتباط را گردآوری کردهاید، فعالیت بعدی این میباشد که یک استراتژی برای غربال کردن کلیدواژهها و گزینش شایسته ترینها پیاده فرمایید. برای اینفعالیت نیز میتوانید از ابزارهای مو جود استعمال نمائید و ترازو محبوبیت و رنج کلیدواژهها را بسنجید. در مجموع 25 کلیدواژه برای نرم افزار خویش تعیین نمائید. برای یک نرم افزار نو از کلیدواژههایی به کار گیری نمائید که واحد سنجش مشقت آنها ذیل باشد. این کلیدواژهها به شما امداد می نمایند تا مقام اول خویش را ثبت نمایید. در مرحلهی بعدی از کلیدواژههایی به کارگیری فرمایید که معیار مشقت آنها طولانی تر میباشد اما محبوبیت بالاتری داراهستند. 2. شایسته ترین منزلت کلیدواژه در seo نرم افزار اینک که شما کلیدواژههای خویش را تعیین کرده و آنهارا سئو کردهاید، مرحلهی بعدی این میباشد کهاین کلیدواژهها را در جای مطلوب قرار دهید. یکسری بخش متادیتا موجود هست که شما می بایست کلیدواژههای خویش را در آن جا قرار دهید. [ سه شنبه 13 اسفند 1398 ] 13:16 ] [ علی پور ] [ ] اضافه کردن فیلتر جستجو با RecyclerView در اندرویددر مطالب قبلی در باب Recyclerview سخن کردیم و نکاتی را درباره ی ادغام آن با Cardview و افزودن Swipe برای توابع حذف و غیره اشاره کردیم. درین نوشتهیعلمی قصد داریم شیوه ی افزودن قابلیت و امکان غربال کاوش به recyclerview را یادگرفتن دهیم. ایجاد کاوش در اندروید فعالیت بسیار بی آلایش ای میباشد و از ویجت نوار ابزار کاوش برای ورود متن کاوش به کار گیری می شود. برای نشان دادن این زمینه، یک نمونه با لیست تماس و کاوش بر طبق اسم و شماره تماس را ارائه خوا هیم بخشید. دانلود پروژه ()RecyclerView Search Filter – getFilter اندروید کلاس های قابل غربال شدن برای غربال کردن اطلاعات با استعمال از یک غربال یا این که شرط را مهیا میکند. معمولا متد getfilter() ناچار میباشد در کلاس آداپتور که شرط غربال کردن برای کاوش در آن قراردارد، اصطلاحا override شود. در قطعه کد پایین یک نمونه از متد getfilter() اکران داده گردیده که یک مخاطب را بر طبق اسم و شماره تماس از لیست مخاطبان کاوش مینماید. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 @Override public Filter getFilter() { return new Filter() { @Override protected FilterResults performFiltering(CharSequence charSequence) { String charString = charSequence.toString(); if (charString.isEmpty()) { contactListFiltered = contactList; } else { List filteredList = new ArrayList<>(); for (Contact row : contactList) { // name match condition. this might differ depending on your requirement // here we are looking for name or phone number match if (row.getName().toLowerCase().contains(charString.toLowerCase()) || row.getPhone().contains(charSequence)) { filteredList.add(row); } } contactListFiltered = filteredList; } FilterResults filterResults = new FilterResults(); filterResults.values = contactListFiltered; return filterResults; } @Override protected void publishResults(CharSequence charSequence, FilterResults filterResults) { contactListFiltered = (ArrayList) filterResults.values; // refresh the list with filtered data notifyDataSetChanged(); } }; } نمونه json برای این نمونه ایجاد کاوش در اندروید ، قصد داریم تا از json که لینک و پیوند آن را قرار داده ایم، استعمال کنیم. این جیسون دربرگیرنده لیستی از مخاطبین میباشد که هر مخاطب اسم، شماره تلفن و تصویر پروفایل داراست. https://acdev.ir/wp-content/uploads/2019/01/json/contacts.json 1 2 3 4 5 6 7 8 9 10 11 [{ "name": "Tom Hardy", "image": "https://api.androidhive.info/json/images/tom_hardy.jpg", "phone": "(541) 754-3010" }, { "name": "Johnny Depp", "image": "https://api.androidhive.info/json/images/johnny.jpg", "phone": "(452) 839-1210" } ] ساخت پروژه ی نو برای آغاز فعالیت بایستی یک پروژه در اندروید استودیو ساخت نمایید و مشاهده کنید که از کاوش خروجی مناسب اخذ کنید. 1- یک پروژه ی نو در اندروید استودیو از مسیر file/new project تولید و basic activity را از الگوها گزینش فرمائید. 2- build.gradle را در پایین فایل app گشوده نمائید و تعلق های Recyclerview، Glide و Volley را بیشتر فرمایید. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 build.gradle dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) // ... // recycler view implementation 'com.android.support:recyclerview-v7:26.1.0' // glide image library implementation 'com.github.bumptech.glide:glide:4.3.1' // volley http library implementation 'com.android.volley:volley:1.0.0' implementation 'com.google.code.gson:gson:2.6.2' } 3- منابع تحت را به فولدر های string.xml، dimens.xml و colors.xml بیشتر فرمایید. 1 2 3 4 5 6 7 8 strings.xml RecyclerView Search Settings Contacts Search Type name… 1 2 3 4 5 6 7 8 9 dimens.xml 16dp 16dp 40dp 10dp 15dp 12dp 1 2 3 4 5 6 7 8 9 colors.xml #111 #FFF #ea3732 #333333 #8c8c8c 4- فولدر res.zip را دانلود و آیکون های موردنیاز برای کاوش که درین پوشه قرار داراهستند را به پروژه بیشتر کنید. 5- یک کلاس به اسم MyApplication.java را تولید و کلاس را از Application توسعه و گسترش دهید. این کلاس در volley مقداردهی نخستین میشود. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 MyApplication.java package info.androidhive.recyclerviewsearch; /** * Created by ravi on 16/11/17. */ import android.app.Application; import android.text.TextUtils; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.Volley; public class MyApplication extends Application { public static final String TAG = MyApplication.class .getSimpleName(); private RequestQueue mRequestQueue; private static MyApplication mInstance; @Override public void onCreate() { super.onCreate(); mInstance = this; } public static synchronized MyApplication getInstance() { return mInstance; } public RequestQueue getRequestQueue() { if (mRequestQueue == null) { mRequestQueue = Volley.newRequestQueue(getApplicationContext()); } return mRequestQueue; } public void addToRequestQueue(Request req, String tag) { // set the default tag if tag is empty req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); getRequestQueue().add(req); } public void addToRequestQueue(Request req) { req.setTag(TAG); getRequestQueue().add(req); } public void cancelPendingRequests(Object tag) { if (mRequestQueue != null) { mRequestQueue.cancelAll(tag); } } } 6- AndroidManifest.xml را گشوده فرمایید و Myapplication را به تگ طولانی تر فرمائید. علاوه براین، جواز Intertnet را برای فراخوانی http بیشتر فرمائید. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 AndroidManifest.xml 7- دراین مرحله نیاز داریم تا جیسون نظارت خوانده شود و به یک کلاس pojo برای تروتمیز کردن جیسون نیاز داریم. یک کلاس به اسم Contact.java ساخت و name، image و phone number را بیش تر نمائید. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Contact.java package info.androidhive.recyclerviewsearch; /** * Created by ravi on 16/11/17. */ public class Contact { String name; String image; String phone; public Contact() { } public String getName() { return name; } public String getImage() { return image; } public String getPhone() { return phone; } } 8- یک کلاس به اسم MyDividerItemDecoration.java را تولید فرمایید. این قدم به طور کامل ازروی اراده بوده ولی برای افزودن کناره ی طولانی تر به RecyclerView divider میباشد. این یک کلاس تقسیم کننده ی ازروی اختیار برای افزودن لبه ی چپ به خط تقسیم است. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 package info.androidhive.recyclerviewsearch; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.TypedValue; import android.view.View; /** * Created by ravi on 17/11/17. */ public class MyDividerItemDecoration extends RecyclerView.ItemDecoration { private static final int[] ATTRS = new int[]{ android.R.attr.listDivider }; public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL; public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL; private Drawable mDivider; private int mOrientation; private Context context; private int margin; public MyDividerItemDecoration(Context context, int orientation, int margin) { this.context = context; this.margin = margin; final TypedArray a = context.obtainStyledAttributes(ATTRS); mDivider = a.getDrawable(0); a.recycle(); setOrientation(orientation); } public void setOrientation(int orientation) { if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) { throw new IllegalArgumentException("invalid orientation"); } mOrientation = orientation; } @Override public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { if (mOrientation == VERTICAL_LIST) { drawVertical(c, parent); } else { drawHorizontal(c, parent); } } public void drawVertical(Canvas c, RecyclerView parent) { final int left = parent.getPaddingLeft(); final int right = parent.getWidth() - parent.getPaddingRight(); final int childCount = parent.getChildCount(); for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child .getLayoutParams(); final int top = child.getBottom() + params.bottomMargin; final int bottom = top + mDivider.getIntrinsicHeight(); mDivider.setBounds(left + dpToPx(margin), top, right, bottom); mDivider.draw(c); } } public void drawHorizontal(Canvas c, RecyclerView parent) { final int top = parent.getPaddingTop(); final int bottom = parent.getHeight() - parent.getPaddingBottom(); final int childCount = parent.getChildCount(); for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child .getLayoutParams(); final int left = child.getRight() + params.rightMargin; final int right = left + mDivider.getIntrinsicHeight(); mDivider.setBounds(left, top + dpToPx(margin), right, bottom - dpToPx(margin)); mDivider.draw(c); } } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { if (mOrientation == VERTICAL_LIST) { outRect.set(0, 0, 0, mDivider.getIntrinsicHeight()); } else { outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0); } } private int dpToPx(int dp) { Resources r = context.getResources(); return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics())); } } تایپ کردن کلاس آداپتور با غربال تا این مرحله منابع مهیا میباشند و می بایست کلاس آداپتور را بنویسید. تایپ کردن این کلاس، بخش اصلی فعالیت دراین نوشتهعلمی هست، در فیض می بایست تمرکز بیشتری روی آن داشته باشید. 9- یک لایه به اسم user_row_item.xml ساخت و لایه ی تحت را بیش تر نمائید. این لایه گزینه مخاطب در لیست را تحت عنوان خروجی ارائه میدهد. این لایه مشتمل بر دو textview برای ارائه ی name، phone number و یک imageview برای اکران تصویر پروفایل هست. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 user_row_item.xml 10- یک کلاس به اسم ContactsAdapter.java تولید و آن را از کلاسFilterable به طور implement پیاده سازی نمایید تا از شما منظور شود تا متد getfilter() را override نمایید. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 ContactsAdapter.java package info.androidhive.recyclerviewsearch; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Filter; import android.widget.Filterable; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import java.util.ArrayList; import java.util.List; /** * Created by ravi on 16/11/17. */ public class ContactsAdapter extends RecyclerView.Adapter implements Filterable { private Context context; private List contactList; private List contactListFiltered; private ContactsAdapterListener listener; public class MyViewHolder extends RecyclerView.ViewHolder { public TextView name, phone; public ImageView thumbnail; public MyViewHolder(View view) { super(view); name = view.findViewById(R.id.name); phone = view.findViewById(R.id.phone); thumbnail = view.findViewById(R.id.thumbnail); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // send selected contact in callback listener.onContactSelected(contactListFiltered.get(getAdapterPosition())); } }); } } public ContactsAdapter(Context context, List contactList, ContactsAdapterListener listener) { this.context = context; this.listener = listener; this.contactList = contactList; this.contactListFiltered = contactList; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.user_row_item, parent, false); return new MyViewHolder(itemView); } @Override public void onBindViewHolder(MyViewHolder holder, final int position) { final Contact contact = contactListFiltered.get(position); holder.name.setText(contact.getName()); holder.phone.setText(contact.getPhone()); Glide.with(context) .load(contact.getImage()) .apply(RequestOptions.circleCropTransform()) .into(holder.thumbnail); } @Override public int getItemCount() { return contactListFiltered.size(); } @Override public Filter getFilter() { return new Filter() { @Override protected FilterResults performFiltering(CharSequence charSequence) { String charString = charSequence.toString(); if (charString.isEmpty()) { contactListFiltered = contactList; } else { List filteredList = new ArrayList<>(); for (Contact row : contactList) { // name match condition. this might differ depending on your requirement // here we are looking for name or phone number match if (row.getName().toLowerCase().contains(charString.toLowerCase()) || row.getPhone().contains(charSequence)) { filteredList.add(row); } } contactListFiltered = filteredList; } FilterResults filterResults = new FilterResults(); filterResults.values = contactListFiltered; return filterResults; } @Override protected void publishResults(CharSequence charSequence, FilterResults filterResults) { contactListFiltered = (ArrayList) filterResults.values; notifyDataSetChanged(); } }; } public interface ContactsAdapterListener { void onContactSelected(Contact contact); } } در متد getfilter()، فن ی کاوش برای متد performfiltering() ارسال میگردد. کاوش برای یک مخاطب با اسم، شماره تلفن با فن ی کاوش ارائه میشود. شما بایستی وضعیت کاوش را متناسب با منابع برنامه تان تهیه و تنظیم فرمایید. رابط contactsadapterlistner() متد فراخوانی oncontactselected() را هر دوره که یک مخاطب از لیست تعیین شود، مهیا خواهد کرد. افزودن ویجت کاوش و لیست غربال کردن درین مرحله نیاز داریم تا Searchview را در نوار ابزار فعال کنیم و از Recyclerview با یاری بررسی و قرائت جیسون و انتقال متن کاوش به آداپتور خروجی بگیریم. 11- menu_main.xml را ساخت یا این که گشوده فرمایید که ذیل res/meun قرار گرفته و ویجت searchview را بیشتر و آنرا برای مدام قابل اکران قرار دهید. 1 2 3 4 5 6 7 8 9 10 11 12 13 menu_main.xml 12- ذیل پوشه res/xml ، یک فولدر xml به اسم searchable.xml ساخت فرمائید (در حالتیکه این فولدر از قبلی نیست آنرا تولید نمائید) 1 2 3 4 5 searchable.xml 13- AndroidManifest.xml و configure the search را مانند پایین گشوده فرمائید. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 AndroidManifest.xml 14- پوشه های لایه را از main activity گشوده فرمائید که دربرگیرنده activity_main.xml و content_main.xml هست و اجزای recyclerview را طولانی تر فرمایید. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 activity_main.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 content_main.xml 15- در غایت mainactivity.java را گشوده و کد های نشان داده گردیده در تحت را بیش تر نمایید. در متد fetchcontacts() یک volley برای خارج کشیدن جیسون درخواست می نماید. خارج کشیدن یا این که fetch کردن جیسون با امداد Gson به طور آراسته صورت گرفته و تمام مخاطبین به یک لیست طولانی تر می گردند. فراخونی mAdapter.notifyDataSetChanged() سبب میگردد تا از recyclerview خروجی گرفته شود. در onCreateOptionsMenu() منو inflate گردیده و searchview نمایش داده می شود. searchView.setOnQueryTextListener() به تغییرو تحول کاراکترها در طول تایپ کردن در فیلد کاوش گوش میدهد. متن وارداتی برای کاوش تجزیه و آنالیز گردیده و با یاری mAdapter.getFilter().filter(query) به کلاس آداپتور ارسال می شود و آن گاه recyclerview با داده های غربال گردیده ی تازه بروز رسانی میگردد. onContactSelected() زمانیکه یک مخاطب از لیست گزینش شود، فراخوانی خواهد شد. [ دوشنبه 12 اسفند 1398 ] 12:42 ] [ علی پور ] [ ] |
|
[ طراح قالب : آوازک | Powered By : AramBlog.ir ] |