About Objects recently delivered a custom, three-day course for a team of sales engineers at a leading company in the mobile technology space. The class covered a broad range of iOS development-related topics, including everything from software engineering pitfalls and best practices, to mobile architecture and middleware integration.
Diving Into Swift
The first day of class began with a dive into Xcode, Cocoa touch, and the Swift programming language, wherein VP of Training Jonathan Lehr laid out a strong foundation for what it means to develop for iOS in 2017. Throughout the day, attendees worked to identify key differentiators of the iOS platform, including development tools such as the Simulator and Interface Builder, Adaptive Layout, Accessibility features, and Apple’s Human Interface Guidelines.
Q&A Captivates the Audience
The second day included a two-hour Q&A session with our VP of Engineering, Eric Caminiti and a representative from an About Objects enterprise client in the hospitality industry. Attendees gained insight on a variety of topics, including platform-specific toolsets, application security, engineering for multiple platforms, and how best to communicate the benefits of native iOS development to enterprise clients.
Mobile Toolsets Dominate the Conversation
The growing popularity of cross-platform tools surfaced as a major focus of discussion. The About Objects team helped clarify the benefits of native vs. cross-platform approaches, and elaborated many of the pitfalls of cross-platform development.
Middleware Rounds Out the Course
On the final day of the course, Chief Architect LeRoy Mattingly spoke about the significance of middleware and microservices architecture in modern development, where frictionless communication within and between apps is critical. Increasingly, communication between modern and legacy applications introduces new levels of complexity to enterprise systems.
LeRoy showed how microservices help reduce complexity by introducing decoupled, single-purpose services to streamline integration with existing systems. This approach enables rapid, iterative development and deployment on large systems that can otherwise be difficult to change.