Essential Factors to Consider in Mobile App Development