Cross-Platform Mobile App Development: What Is It and Why You Might Need It?