iOS presents a programming model of MVC where the view can be anything. This is basically the same programming model as on OS X and similar to the programming model for windows if you use MFC. I found iOS libraries to be more traditional OS like and more mature. In contrast, Android forces you into activities, layouts, and intents. Layouts basically don't let you layout out things on a pixel basis unless you use the deprecated absolute layout. So Android is forcing you to try to write apps that work on a wide variety of devices and that interoperable with each other and they do this by forcing a different programming model on the programmer. How one transitions from one screen to another in iOS is how you would expect it to bd done in OS X or Windows. Android forces it via intents instead. Basically on iOS, I feel more in control except when the documentation is intentionally obscure but on Android I feel like I am programming in service of multi-device support, interoperability, and have to seriously limit the APIs I can use because over half of the devices out there are 2 major versions behind: no hardware acceleration and an animation system that has been replaced.
The app stores were not built into the phones. You had to navigate to those third party app stores via the web and download them to your phone. But that web navigation was done via your computer rather than your phone itself. The phones were serving a baby form of HTML that had to be routed via through the carrier if memory serves.