app development factors