I'm necroing this thread so that our new engineers can see it.
The product expectation is that we drop new feature development for iOS 6
when the following features are in production:
- Lead images
- Wikidata descriptions from mobileview
- Search improvements
- Supplement prefix search with fulltext search results
- Wikidata descriptions from PageTerms
- Read more
- Three suggestions from fulltext search backend at the bottom of
every article
- Collapsing tables and infoboxes
- Rollup disambiguation and pages issues into buttons underneath the
lead image
Dan
On 12 November 2014 at 22:05, Dan Garry <dgarry(a)wikimedia.org> wrote:
*tl;dr: The programming language used to develop new
features by our iOS
app engineering team is changing from Objective C to Swift at some point in
the near future.*
When making a native app, the language you have to implement the app in is
chosen by the third party responsible for the platform. For iOS apps, Apple
chose Objective C to be the language the app is written in. Objective C is
a... very strange language. It has a lot of quirks that slow down
development.
To solve the above problem, you can now write apps in a new language
called Swift. Notably, Swift has features that make it less error prone and
more concise than Objective C, which should increase our velocity of
feature development. Swift is also much more readable and in-line with
other languages, which lowers the barrier of entry (which is currently very
high with Objective C).
Importantly, Objective C and Swift can live alongside each other. So, when
we "switch to Swift" we do not need to rewrite all of our existing code
from Objective C to Swift. Instead, we can just start developing new
features using Swift, and slowly rewrite the old code from Objective C into
Swift as time allows.
On the downsides, Swift is only supported on iOS 7 and above. iOS 6 only
represents around 5% of our user base, and we can pin iOS 6 users to the
last version of the app we released before we used Swift. We need to decide
what the last set of features we're want in that build are before we switch.
Here are our next steps:
- Evaluate more concretely whether Swift actually fits our needs or
not. [Engineering]
- Decide last set of features for our iOS 6 build. [Product/Design]
Thanks,
Dan
--
Dan Garry
Associate Product Manager, Mobile Apps
Wikimedia Foundation
--
Dan Garry
Associate Product Manager, Mobile Apps
Wikimedia Foundation