ಆಯ್ಕೆಯ ಕೆಲಸ

Zenzop: ಲಾಸ್ಟ್ ಮೈಲ್‌ಗಾಗಿ ಕಟ್ಟಿದ ಡೆಲಿವರಿ ಆ್ಯಪ್‌ಗಳು

ಪಾತ್ರ
ಸುನ್ನಾದಿಂದ ನಿರ್ಮಿಸಿದ
ಸ್ಟ್ಯಾಕ್
React Native · Swift · Google Maps · CodePush
ಕೊಂಡಿಗಳು

ಸಮಸ್ಯೆ

Zenzop ಒಂದು ಆನ್-ಡಿಮಾಂಡ್ ಡೆಲಿವರಿ ಆ್ಯಪ್: ಆಹಾರ, ಗ್ರೋಸರಿ, ಔಷಧಿಗಳು, ಮತ್ತು ದೈನಂದಿನ ಅಗತ್ಯಗಳು ನಿಮ್ಮ ಬಾಗಿಲಿಗೆ. ಡೆಲಿವರಿ ಕಸ್ಟಮರ್ ನೇರವಾಗಿ ಅನುಭವಿಸುವ ಎರಡು ವಿಷಯಗಳ ಮೇಲೆ ನಿಲ್ಲುತ್ತದೆ ಅಥವಾ ಬೀಳುತ್ತದೆ: ನನ್ನ ಆರ್ಡರ್ ಎಲ್ಲಿದೆ ಎಂದು ನನಗೆ ಗೊತ್ತಿದೆಯೇ, ಮತ್ತು ETA ಪ್ರಾಮಾಣಿಕವೇ. ಎರಡನ್ನೂ ಹೊತ್ತೊಯ್ಯುವ ಆ್ಯಪ್‌ಗಳನ್ನು ಶೂನ್ಯದಿಂದ, iOS ಮತ್ತು Android ಗೆ ಕಟ್ಟುವುದು ನನ್ನ ಕೆಲಸವಾಗಿತ್ತು.

ನಿರ್ಧಾರಗಳು

ಎರಡು ಆ್ಯಪ್‌ಗಳು, ಒಂದು ಕೆಲಸ. ನಾನು ಎರಡೂ ಕಡೆಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ React Native ನಲ್ಲಿ ಕಟ್ಟಿದೆ: ಕಸ್ಟಮರ್ ಆರ್ಡರ್ ಮಾಡುವ Shop ಆ್ಯಪ್, ಮತ್ತು ಡೆಲಿವರಿ ಪಾರ್ಟ್ನರ್ ನಡೆಸುವ Rider ಆ್ಯಪ್. ಪ್ರತಿಯೊಂದೂ iOS ಮತ್ತು Android ನಲ್ಲಿ ಶಿಪ್ ಆಯಿತು, ಇದರಿಂದ ಒಂದು ಚಿಕ್ಕ ತಂಡ ನಾಲ್ಕೂ ಸರ್ಫೇಸ್‌ಗಳ ಮೇಲೆ ಒಟ್ಟಿಗೆ ಚಲಿಸಬಹುದು. Google Maps ರಿಯಲ್-ಟೈಮ್ ಜಿಯೋಲೊಕೇಶನ್ ಮತ್ತು ರೂಟ್ ಆಪ್ಟಿಮೈಸೇಶನ್ ನಿರ್ವಹಿಸುತ್ತದೆ, ಎರಡೂ ಆ್ಯಪ್‌ಗಳು ಹಂಚಿಕೊಳ್ಳುವ ಬೆನ್ನೆಲುಬು.

ಲಾಕ್ ಆದ ಫೋನ್‌ನಲ್ಲೂ ಉಳಿಯುವ ಲೈವ್ ಟ್ರ್ಯಾಕಿಂಗ್. ರೈಡರ್‌ನ ಫೋನ್ ಇಡೀ ಟ್ರಿಪ್ ಜೇಬಿನಲ್ಲಿ ಇರುತ್ತದೆ. ನಾನು ಬ್ಯಾಕ್‌ಗ್ರೌಂಡ್ ಲೈವ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಕಟ್ಟಿದೆ ಇದರಿಂದ ಆ್ಯಪ್ ಫೋರ್‌ಗ್ರೌಂಡ್‌ನಲ್ಲಿ ಇಲ್ಲದಿದ್ದಾಗಲೂ ರೈಡರ್‌ನ ಪೊಸಿಶನ್ ಹರಿಯುತ್ತಿರುತ್ತದೆ, ಮತ್ತು iOS ನಲ್ಲಿ ನಾನು Swift ಜೊತೆ ನೇಟಿವ್ ಹೋದೆ ಇದರಿಂದ Live Activities ಚಲಾಯಿಸಬಹುದು: ಆರ್ಡರ್ ಸ್ಟೇಟಸ್ ಮತ್ತು ರೈಡರ್ ಪ್ರಗತಿ Dynamic Island ಮತ್ತು ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಮೇಲೆ, ಇದರಿಂದ ಕಸ್ಟಮರ್ ಏನನ್ನೂ ತೆರೆಯದೆ ತನ್ನ ಆಹಾರ ಎಲ್ಲಿದೆ ಎಂದು ನೋಡಬಹುದು. ಜನ ಚೆಕ್ ಮಾಡುವ ಆ್ಯಪ್ ಮತ್ತು ಜನ ನಂಬುವ ಆ್ಯಪ್, ಇವೆರಡರ ನಡುವಿನ ವ್ಯತ್ಯಾಸ ಇದೇ.

ಒಂದು ETA ಇಂಜಿನ್, ETA ಊಹೆ ಅಲ್ಲ. ಡೆಲಿವರಿ ETA ಒಂದು ಭರವಸೆ. ನಾನು ಒಂದು ಇಂಜಿನ್ ಕಟ್ಟಿದೆ ಅದು ಇದನ್ನು ಡಿಸ್ಟೆನ್ಸ್ ಮ್ಯಾಟ್ರಿಸಸ್, ಲೈವ್ ಟ್ರಾಫಿಕ್, ರೈಡರ್‌ನ ಲೈವ್ ಪೊಸಿಶನ್, ಮತ್ತು ರೂಟ್‌ನ ಹಿಸ್ಟಾರಿಕಲ್ ಆವರೇಜ್‌ಗಳಿಂದ ಲೆಕ್ಕ ಹಾಕುತ್ತದೆ, ಒಂದು ನೇರ-ಗೆರೆಯ ಊಹೆಯಿಂದ ಅಲ್ಲ. ಇದು ETA ನಿಖರತೆಯನ್ನು 28% ಹೆಚ್ಚಿಸಿತು, ಕಸ್ಟಮರ್ ಪ್ರತಿ ಆರ್ಡರ್‌ನಲ್ಲೂ ಅನುಭವಿಸುವ ಸಂಖ್ಯೆ.

ಲೋಡ್‌ನಲ್ಲಿ ವೇಗ, ಫಿಕ್ಸ್‌ನಲ್ಲಿ ವೇಗ. ನಾನು ಆ್ಯಪ್‌ಗಳನ್ನು 30% ವೇಗದ ಲೋಡ್ ಟೈಮ್‌ಗಳಿಗಾಗಿ ರೀಫ್ಯಾಕ್ಟರ್ ಮಾಡಿ CodePush ಜೋಡಿಸಿದೆ, ಇದರಿಂದ ಓವರ್-ದ-ಏರ್ ಅಪ್‌ಡೇಟ್‌ಗಳು ಪೂರ್ಣ ಸ್ಟೋರ್ ರಿಲೀಸ್ ಇಲ್ಲದೆ ನೇರವಾಗಿ ಬಳಕೆದಾರರಿಗೆ ತಲುಪುತ್ತವೆ. ಫಿಕ್ಸ್ ಮತ್ತು ಬದಲಾವಣೆಗಳು ಅದೇ ದಿನ ಬರುತ್ತವೆ, ಮುಂದಿನ ರಿವ್ಯೂ ಸೈಕಲ್‌ನಲ್ಲಿ ಅಲ್ಲ.

API ಬಾಟಲ್‌ನೆಕ್ ಆಗದಂತೆ ಡಾಕ್ಸ್. ನಾನು ಕಾಂಪ್ರಿಹೆನ್ಸಿವ್ Swagger API ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಬರೆದೆ ಇದರಿಂದ ಕ್ಲೈಂಟ್ ಮತ್ತು ಬ್ಯಾಕೆಂಡ್ ತಂಡಗಳು ಟ್ರೈಬಲ್ ನಾಲೆಡ್ಜ್‌ನ ಬದಲು ಒಂದು ಸಿಂಗಲ್ ಸೋರ್ಸ್ ಆಫ್ ಟ್ರುತ್ ಆಧಾರದ ಮೇಲೆ ಬಿಲ್ಡ್, ಟೆಸ್ಟ್, ಮತ್ತು ಇಂಟಿಗ್ರೇಟ್ ಮಾಡಬಹುದು.

ಫಲಿತಾಂಶ

ಎರಡೂ ಆ್ಯಪ್‌ಗಳು iOS ಮತ್ತು Android ನಲ್ಲಿ ಶಿಪ್ ಆದವು: ಒಂದು ಕಸ್ಟಮರ್ ಆ್ಯಪ್ ಮತ್ತು ಒಂದು ರೈಡರ್ ಆ್ಯಪ್ ಶೂನ್ಯದಿಂದ ಕಟ್ಟಲಾಯಿತು, ಜೇಬಿನಲ್ಲೂ ಉಳಿಯುವ ಲೈವ್ ಟ್ರ್ಯಾಕಿಂಗ್, Dynamic Island ಮೇಲೆ iOS Live Activities, ಮತ್ತು ಬೇಸ್‌ಲೈನ್‌ಗಿಂತ 28% ಹೆಚ್ಚು ನಿಖರವಾದ ETA ಇಂಜಿನ್ ಜೊತೆ. ಲಾಸ್ಟ್ ಮೈಲ್ ಡೆಲಿವರಿಯ ಕಸ್ಟಮರ್ ನಿಜವಾಗಿ ಅನುಭವಿಸುವ ಭಾಗ, ಮತ್ತು ಈ ಆ್ಯಪ್‌ಗಳು ಇದನ್ನೇ ನಿರ್ವಹಿಸಲಾಗಿದೆ ಎಂದು ಅನಿಸುವಂತೆ ಕಟ್ಟಲಾಗಿತ್ತು.