The evolution of mobile Development: You are an android developer trying to become an iOS developer, or you are an iOS developer who is trying to get into the android world. Taking advantage of your current platform and put it in steroids
▸ Type Checks when compiling ▸ Null Safety (Billion Dollar Mistake) ▸ Supports Object Oriented Programming and some Functional Programming ▸ Statically Typed ▸ Supports Type Inference ▸ Type Checks when compiling ▸ Null Safety ▸ Supports some Functional Programming Encourages Protocol Oriented Programming SWIFT
Any? Is similar to Object in java ▸ Lambdas as Parameters and return values ▸ Generics ▸ Higher Order Functions ▸ Any and AnyObject ▸ Closures ▸ Generics SWIFT
encouraged ▸ Extensions to add new Functionality ▸ Interoperability with java ▸ Semi automatic conversion Java-> Kotlin ▸ Immutability is not forces but strongly encouraged. ▸ Extensions to add new Functionality ▸ Interoperability with Objective-C ▸ Manual conversion Obj-c ->swift SWIFT ▸ This are some commonalities there are more…
Memory Management, Pointers, etc. • Android: Java a language well known to a lot of people, very stable. Lifecycle Management (Activities) was the challenge, Eclipse ▸ Challenges 2: • A new language. Constant changes on the language. Interoperability with Obj-C. • Android: Introduced Fragments, Life Cycle Management, Multiple Device screens. Support for different API’s, Gingerbread. My Perspective
paradigm: Functional Programming, Protocols and Protocol Oriented Programming, Generics. Constant evolution of the language. Auto Layout. Automatic Reference Counter. • Android: Migration from Eclipse to Android Studio. Maven vs Gradle. More strict patterns to follow in Android. Multiple devices. Gingerbread. ▸ Challenges 4 • iOS: More language changes. Stack Views. • Android: Compatibility with Java 8. Start to consider a more functional approach. Constraint Layout. Both Auto Layout and Constraint Layout are based on Cassowary algorithm. My Perspective
in the language. Keeping code base up to date. Removing old Obj-C Code • Android: New Language Supported by Google. Will have similar problems that what happened when swift was introduced. (Opportunity to learn from previous experiences.). More opinionated about architecture. My Perspective
time • Learning curve in platform specific things is reducing and becoming more opinionated. • Increased Team Collaboration. • We still need to learn the specifics about each platform like lifecycle, best practices, frameworks, threads, permissions. E.g: Core Data, Room. • Similar implementation. • Layouts follow a similar approach. CONCLUSION My Perspective