Senior iOS Software Engineer @ WillowTree – As a Senior Software Engineer at WillowTree, you’ll have the opportunity to impact teammates throughout various stages of their careers. You’ll have clear oversight of how engineering runs day-to-day and will influence project outcomes. This is not a remote position and may require some travel. Currently, all team members are working from home until our offices reopen. – Charlottesville VA
Senior iOS Developer @ Doist – Joining Doist as an iOS developer means you'll be joining a diverse, ambitious, remote-first team of 70+ people who are distributed across 31 countries. You'll help create tools, like Todoist and Twist, that promote a calmer, more balanced, more fulfilling way to work and live. – Remote, anywhere!
iOS Engineer @ Karbon – Join our dedicated, all-remote agency and help us build amazing iOS apps for amazing clients. We've spent the past 10 years helping companies ship apps to millions of users—join us as we focus on the next 10 years. – Remote within US time zones
Senior iOS Developer @ WillyWeather – WillyWeather is a feature rich app that that beautifully delivers the most accurate local weather data from best in class data sources. This is a fantastic opportunity to have an immediate impact working on one of Australia’s most used apps. Work remotely alongside a collaborative and innovative team. – Remote within Asia Pacific time zones
I got a few emails after my comments last week asking why I didn't mention Xcode for iPad. It's an interesting subject, but I deliberately didn't bring it up as I was primarily talking about the consumer perception of the iPad. But, I don't think the time is right for Xcode for iPad, and I'll tell you why.
What makes Xcode different from Swift Playgrounds? I think the biggest difference is that Xcode builds apps that run independently, whereas playgrounds are neatly self contained. Yes, of course there's more to it than that, but that's the fundamental difference.
So why don't Apple make Xcode that can build and install other iPad apps? Sure, they could. But what about iPhone apps? I'd say that until Xcode can build and deploy to other iOS devices, especially phones, it's probably not going to see the light of day. Can the iPad do that? Of course it can, but I don't feel like that's where Apple's priorities lie, or should lie, right now. For now, the Mac is an amazing platform to build iOS apps on and Apple are focusing on building the platforms out for consumers first. Us developers can come along later, it'll be fine. 👍
Now, I could be completely wrong and I may be eating my words after next week's event, but I'd be really surprised if this is the year that happens.
Let's get this week started by celebrating a small anniversary. It's been one year since the iOS Dev Directory went live! 🎉
When I launched the site I hoped it would become a comprehensive directory of sites publishing regular content on iOS development. Selfishly, I also hoped it would be the easiest way for me to expand the people who I listen to on a regular basis. 😀
So, has it been a success so far?
I'd say it definitely has! On day one the directory contained 184 entries and throughout the year I've continued to add more. There have also been over 190 community contributions and the directory now contains 461 sites! That's amazing.
But… I'm quite sure there are plenty of sites that are still missing so let's all give it a bit of a bump on its birthday shall we? Go and check the page for your blog, your colleague's blogs and your friend's blogs. If any of them are missing, you know what to do. Then, would you mind sharing it? I think it's probably got most of the blogs run by people who are aware of this newsletter, but what about all the people who have never seen iOS Dev Weekly? The only way it's going to reach them is if you all share it to your followers. Thanks!
I wonder how many sites it'll track next March? 🤞
I agree with John Gruber on the iOS 13/13.1 shenanigans that happened this week:
Basically, I think we need to get used to WWDC announcements being a roadmap for the next year of OS releases, not a list of what’s going to ship in the initial dot-zero release in the fall.
So... Show the roadmap at WWDC, ship a subset in September, then continue shipping features and APIs throughout the year. I think it'd be good for the platform, and it'd be good for developers as it would eventually reduce the need to rush through every summer implementing this year's new features while they are all in beta. It might mean that that WWDC week (after the keynotes) would need a shake up, but that wouldn't be the end of the world.
The most important part of this though that postponing features just a couple of weeks before developers were about to ship apps using them really isn't ideal. That's not news to anyone at Apple of course, and I know these decisions are not made lightly. But for the roadmap approach to actually work, we'd need to be told about the year's plan in advance.
I hope it's not too chaotic inside the spaceship right now, and I wish everyone working on the new releases good luck, no matter what makes it into the dot zero. 🤞
I'm a huge fan of static site generators. In fact, this newsletter started as a static site! It was a Jekyll site full of Markdown files, and three templates; One for the web version, one for the email, and one for the plain text email. The iOS Dev Directory is a static site. The SwiftPM Library is a static site front end combined with a custom back end. My blog is a static site. Even App Review Times began as a static site. It’s been my preferred way to get a project up and running quickly for a very long time. 👍
So, I’ve been eagerly awaiting John Sundell’s Swift based static site generator for a while, and just before the holidays he made the last part of it available. It consists of Publish, Plot, Ink, and Splash. I'm not someone who pines to write everything in Swift, but I'm definitely interested in this.
I'm even building a new static site right now for the iOS Dev Survey Results. Unfortunately, I had already started building the website before John's tool was published (pun intended!), but I'll be checking out John's project for the next itch that I inevitably need to scratch! 😬 I'm excited to try it out.
Senior iOS Developer @ Doist – Joining Doist as an iOS developer means you'll be joining a diverse, remote-first team of 60+ people who are distributed across 25 countries. You'll get to help create tools, like Todoist and Twist, that promote a calmer, more balanced, more fulfilling way to work and live. – Remote
Senior iOS Developer @ Float – Are you Float’s next Senior iOS Developer? As Senior iOS Developer with Float, you will lead the mobile development team to design, implement, test, and deliver in an Agile environment. Float designs and builds mobile products that make our clients’ workforces more effective. – Remote or Morton, IL
Senior iOS Engineer, Swift @ Starry – Tired of your monopolistic cable provider? Join Starry! We are a booming 5G internet company rapidly expanding to more than 20 cities and beyond. Our teams work hard to delight our customers with the best experience. – Boston, MA
Engineering Manager @ onX – Lead the mobile development teams at onX, a Montana based company with the leading off-the-pavement GPS mobile app! As an Engineering Manager, you will manage 10+ talented and fun-loving devs who take pride in empowering our customers to find their way in the wild. Our Engineering team is growing quickly and onX is taking our technology into new outdoor markets... come join the journey! – Bozeman, MT
In previous years, I’d have reached for Ruby (specifically rake) if I had to build a little helper tool or script that needed more than my limited knowledge of shell scripting. I wrote server code with Rails for a long time and still enjoy writing code with Ruby. It’s also great for knocking up little tools to automate repetitive tasks.
That’s changed recently, and it’s primarily down to one Swift package, swift-argument-parser. I built two small command line tools for some behind-the-scenes work on the Swift Package Index recently (1, 2) and used argument parser for both.
First of all, this package is seriously underselling itself. It should be named CommandLineKit or something that lets people know this is about much more than just parsing arguments. Making a tool that operates just how you’d expect any other command line tool to work is trivial. It’s fantastic. If you combine it with something like ShellOut you quickly find yourself with a powerful command line tool environment.
Secondly, it’s a great reminder that it’s easy to miss when a language you use regularly becomes significantly better at solving a problem. I had taken a quick look at argument parser when it first came out but hadn’t built anything with it and had missed what a step change it was for creating little utilities like these.
I hope this inspires a few of you to build your next utility with it! I don’t think you’ll regret it.
I had an email from Derek Lee this week informing me about his latest article on getting started with Kotlin Multiplatform. We also had KotlinSpeechFeatures by Raquib-ul Alam and Arjun Sunil added to the Swift Package Index a few days ago. It’s a port of some Python speech recognition features into Kotlin, but it’s also compatible with Swift through Multiplatform.
It’s no surprise people are using it, too. From what I understand, it’s most appropriate for sharing back-end code (models and logic) across an iOS and Android app, but honestly, I’m not 100% sure how far it goes. I’m pretty uneducated on the whole thing.
Yes, you can write Swift for Android, but I think it’s fair to say that JetBrains is promoting Kotlin as a language you can use with Apple platforms more than Apple is promoting Swift for Android development.
I’ve not written any Kotlin yet, but from every report I have seen, it’s a great language. So as part of my ongoing campaign against “purity” in software development, I should be better informed about it! I can’t promise to write an app using it, but I’m curious to learn more.
But I’m interested in whether it’s on your mind too, so I put together a super quick survey to check! It’s three yes/no questions, so it should only take 5 seconds to complete. There’s also an optional question where you can leave me any KMP blogs and resources you enjoy.
I’ll report the results back next week.
iOS Developer @ Doximity – Doximity, medical network used by over 80% of US clinicians, is hiring passionate iOS engineers (remote). You'll be part of an amazing product team and work on an app that is constantly evolving. Use your skills (Swift, MVVM, FRP) to be an integral part of our newly launched telemedicine feature. – Remote (within US timezones)
iOS Lead @ mobile.dev – Mobile.dev is leading the charge on the shift-left in mobile engineering. We're an ambitious team looking for a world-class iOS engineer who is passionate about building novel tooling for mobile teams. Join us and help shape the future of iOS development! – Remote (Anywhere)
Mobile Full Stack Engineer @ Expensify – Join our passionate team of top-notch engineers to solve a real-world problem, and help people spend less time managing expenses and more time pursuing their real goals. Being part of the Expensify team means building the easiest, fastest, and most efficient expense-related platform. – Remote (Anywhere) with some on-site work (Australia, United Kingdom, or United States in CA, MI, NY, or OR)
Lead Engineer, Apple Platform @ Hudl – Be part of our mission to empower sports teams to make every moment count by joining one of our cross-functional product teams in the UK to create and drive strategy for our native Apple apps (i.e. Hudl Sportscode) used by elite teams around the world (e.g. Premier League, Bundesliga, NBA). – Remote (within European timezones) with some on-site work (United Kingdom)
Senior iOS Developer @ Shape Games – We deliver award winning sports betting products used all over the world. As a developer at Shape you can pride yourself with building products used by millions of people and have fun while doing it. – Remote (within European timezones) with some on-site work (Denmark)
Software Engineer · iOS (all levels) @ Playground – Come join Playground on our mission to make intelligent products shapeable. We build foundational tools that allow anyone to customise data-driven experiences. You'll collaborate with a team of designers, engineers and data-scientists, on building the next generation of intelligent products. – Remote (Anywhere) with some on-site work (United Kingdom)
Senior iOS Developer @ Grailed – Grailed is one of the largest peer-to-peer clothing marketplaces. We use RxSwift, functional programming, and agile practices and we also get to interface directly with users to build and develop features for the app. We are committed to clean code, supporting work-life balance, and enjoying life! – Remote (within US timezones)
Senior iOS Engineer @ Circle – We're a cross-platform community product built for web and mobile, and we're looking for a Senior iOS Engineer to help take our iOS app to the next level. Our iOS team is small and lean, so you'll get a ton of responsibility in building critical features for our iOS app. – Remote (within US or European timezones)
Senior iOS Engineer @ Marshmallow – Marshmallow is building a world where insurance benefits everyone. We’re looking for iOS Engineers to join our mobile team at Marshmallow to help us rebuild insurance – for good! You'll have the opportunity to help shape the roadmap, impacting both what we build and how we build it 🚀 – Remote (within European timezones) with some on-site work (United Kingdom)
Last year was the 10 year anniversary of the iPhone, and this year it's been 10 years since our world as developers changed with the release of the iPhone SDK. I'm sure you've read Craig Hockenberry's article by now as it's been widely shared, but it's a great look back at the really early days of development on the iPhone. It also seemed to trigger something and quickly Twitter was filled with great stories of everyone reminiscing on those days, so let me go next with that. 😀
I clearly remember the announcement of the SDK, I was working on a Mac app at the time and it took everything I had not to immediately abandon it and get started on an iOS app. I managed to resist, but as soon as it was done I immediately dived right in and shipped my first app to the store a few months after the launch and I was hooked.
In the years following, I wrote (and helped to write) apps both for my own company and for others. I also trained hundreds of developers on Objective-C and iOS development. I spoke at conferences everywhere from the USA, to Russia and all over Europe. I also started a newsletter! 😀I can honestly say that in my whole career I have never been so passionate for so long about any technology as I continue to be with iOS. It really did change my life.
The last few years have taken me away from primarily doing iOS work, and while I had an amazing time working on Curated, and other email related things this anniversary couldn't come at a better time because I have a little announcement to make. As of this week, I am now again an independent developer working for myself and so, iOS is back to being 100% of what I do! 🎉🎉🎉
So what are my exact plans? I don't want to make too many firm promises as I'd rather let things happen naturally and be able to say yes to things as they appear, which is something I haven't been able to do in quite a while. However, I do have some plans in progress, and there will even be a (very) small announcement of something right here, next week, so keep an eye out for that!
As part of this change, I'll also be going back to being the sole author of iOS Dev Weekly. I'd really like to say a huge thank you to both Evan and Vicc. They have been an enormous help over this last year and both brought fresh new perspectives on the iOS world. Thank you both, it's been wonderful working with you.
Sorry this turned out to be so long! Let's get on with the important stuff... The links!