Monzo یک سرویس بانکی و اپلیکیشنی است که خدمات مالی دیجیتال و تلفن همراه را ارائه میکند. ماموریت آنها این است که پول برای همه کار کند. برای ثبت نام مشتریان جدید، برنامه Monzo تصاویری از یک مدرک شناسایی (مانند گذرنامه، گواهینامه رانندگی یا کارت شناسایی) می گیرد و یک ویدیو سلفی می گیرد تا ثابت کند که مدارک شناسایی برای متقاضی است.
کاری که آنها انجام دادند
نسخه های اولیه برنامه Monzo از API های camera2 استفاده می کردند. خرابیهای تصادفی و رفتارهای عجیب و غریب در برخی دستگاهها باعث شد که ۲۵ درصد از مشتریان بالقوه فراتر از مراحل ضبط شناسایی و ویدیوی سلفی ادامه ندهند.
برای مقابله با این چالشها، مونزو به CameraX، یک کتابخانه پشتیبانی Jetpack که برای آسانتر کردن توسعه اپلیکیشن دوربین طراحی شده است، روی آورد تا الزامات ضبط تصویر و ویدیوی خود را پیادهسازی کند. با استفاده از CameraController
، Monzo ضبط تصویر سند شناسایی را با استفاده از روش takePicture()
پیاده سازی کرد. برای فیلم سلفی از متدهای startRecording()
و stopRecording()
استفاده کردند. آنها می خواستند تغییراتی در طراحی در جریان ثبت نام ایجاد کنند و یک کتابخانه دوربین ساده تر می خواستند که به آنها انعطاف طراحی بیشتری بدهد.
نتایج
معرفی CameraX مونزو را قادر ساخت تا کد خود را سادهتر کند، آن را قابل نگهداریتر کند و به سادهسازی توسعه کمک کرده است. انتقال به CameraX به میزان زیادی خرابی ها را کاهش داده است و آنها دیگر شاهد فعال سازی تصادفی فلاش دوربین نیستند. همه اینها به کاهش نرخ افت در جریان ثبت نام کمک کرده و بازخورد کاربران را بهبود بخشیده است.
سادهسازی کد حاصل از اجرای CameraX تقریباً 9000 خط کد از جمله 6000 خط کد UI را کاهش داد. CameraX علاوه بر آسانتر نگهداشتن کد و سادهسازی توسعه، به پوشش بهتر کد در تستهای واحد نیز منجر شد.
مهمتر از همه، تاثیر بر جریان ثبت نام قابل توجه بود. با معرفی CameraX و تغییرات طراحی جریان ساده، نرخ انصراف از ثبت تصویر شناسایی و ضبط ویدیوی سلفی از 25٪ به حدود 5٪ کاهش یافت.
«برای ما، CameraX تماماً در مورد ثبات و داشتن یک تجربه یکپارچه سازی آسان برای توسعه دهندگان ما بود. این کتابخانه عالی برای ما بود—ما فقط یک راه ساده برای گرفتن عکس و فیلم میخواستیم. CameraX این را به ما داده است، به علاوه کد ما ساده تر است و تجربه کاربری بهتری دارد." آناستاسیوس مورفوپولوس - توسعه دهنده اندروید، Monzo
شروع کنید
مستندات CameraX را بررسی کنید تا یاد بگیرید که چگونه کد ضبط تصویر قویتر و سادهتر را به برنامه یا بازی خود معرفی کنید.