Last night I was catching up on the week's iOS news and I found myself nodding along with point after point in this article on Apple's long term Marzipan strategy from Curtis Herbert. As I've said before I'm not expecting huge changes to Marzipan over what has been discovered over the last 12 months, but I'm definitely expecting some.
So far most of the criticism has been around things like platform fit, but Curtis makes the point that there are many things that are needed before that can be the top priority:
The real can of worms opens before we even get to worry about if our apps look at home on the Mac: it begins in just worrying about getting them to run. That means every framework we use on iOS has to be there on the Mac, in some form.
He's got a point, macOS and iOS have separated significantly over the years with so many iOS only APIs being introduced. He suggests that one focus of this year's Marzipan release might be something less susceptible to criticisms of platform fit, games.
To me games seem like they'll be the low-hanging-fruit of a v1.0 Marzipan rollout as they'll require the least framework surface area to support. Their AppKit support needs will be minimal too: keyboard/mouse support, a menu bar item or two, and boom(ish) you've got a native-feeling Mac game.
He's not saying that the Marzipan story will be entirely about games (and I also hope it isn't!), but that they may well feature prominently. I do worry that given how much negativity there has been in our community about Marzipan, that whatever they announce this year will only be seen as disappointing.
So what I really hope for in June is that Apple map out their strategy for Marzipan with a little more clarity. Obviously they're not going to give us any information on things like ARM based Macs, but that doesn't mean they can't let us in on the software roadmap a little bit. If platform fit is taking a back seat this year over framework compatibility and games, that's OK but it does mean the wailing and moaning will be deafening for the next 12 months if that's all they present.
They probably won't, but I can live in hope... đ¤
I don't know about you, but I can't wait to see what the folks in Cupertino have been working on all year! đ
If you're going to be in San Jose in person, there's something for every taste, and budget (as long as you ignore accommodation prices đŹ). Whether you're going to WWDC itself, AltConf, Layers or try! Swift, you're going to have a great week.
Like I said in this week's opening comment though, WWDC week in San Jose is so much better if you meet plenty of new people. So, whether you join people for a morning coffee, at one of the morning fitness events (either official, or unofficial), at a live podcast recording (there are too many to link), at a party (also too many). Or maybe you organise an impromptu get together yourself with ConfFriends? If you're looking for a good place to hang out in the city, there's also a decent guide here. It doesn't matter how or where, just make sure you make the most of your week! It can be hard to go up to a complete stranger and say hello, but I promise that 99.9% of the time it results in a positive experience.
But even if you're not there in person, that doesn't mean you need to be alone! There are AltConf Satellite conferences in London, Paris, Berlin, and Madrid. Or, if you can't make it to any of those, then there are all sorts of other "keynote watching" type events in cities all around the world. Enjoy the announcements with friends or make new ones, even if you're not in California.
Or, maybe none of that is possible this year and you're going to be following along completely remotely. There will be plenty coverage from the session videos, and on Twitter, but one site that I'll call out specifically is WWDC by Sundell. Yes, that's a new site, purely for covering the conference as it happens. There's already plenty of content there too, including an interview with me containing some of my thoughts about Marzipan and what I hope to see in Xcode 11. đ¤
Enjoy WWDC, and I'll be back next Friday with my take on it all. đ˘
One prominent feature of Swiftâs upcoming iOS 16 and macOS Ventura releases is a complete re-think of regular expressions. If you havenât seen the new APIs in use yet, the best place to get up to speed is this WWDC video. Itâs the first major step forward for regular expressions in years!
We all reach for a regular expression for rough and ready string parsing, but if youâre anything like me, you end up parsing out the same types of data every time. Maybe youâre looking to pull out a number and then a date, followed by an email address or URL. Then, next time youâre just looking for an email address and a number.
You can build that kind of parsing toolkit with the new RegexBuilder APIs, but what if you didnât need to?
Iâve been a huge fan of Soulver for so many years now that I canât remember when I started using it, but it remains an integral part of the apps I use every day. SoulverCore has been available for a couple of years, which is the main calculation engine that powers the app. Then, on Wednesday, Zac Cohan sent across a link to his latest library SoulverStringParsing, and I couldnât help thinking that itâd be a better fit than even the new RegexBuilder APIs for common string parsing tasks.
You should check out the README for some examples, but it maps very much onto how I was describing my use of regular expressions. Tell it that youâre looking for a couple of numbers and an email address, and itâll figure it out. It wonât be an ideal solution if youâre looking to strictly validate the exact format of a string, but itâs going to be a fantastic way to capture a few values quickly.
Iâd be less excited about this API if it hadnât come out of an app I use daily to mix text and calculations, and it never gets the parsing wrong. The main reason Iâm talking about it, though, is that I love when something makes me re-think a problem that I thought I had all figured out. Thatâs happened twice this year with string parsing. First, with RegexBuilder, which I still love, and now with Zacâs new library.
Note: You may have noticed that neither SoulverCore nor SoulverStringParsing have an open-source license. They are free to use in personal or private projects, and I had a quick chat with Zac about small developers using these libraries in public/small commercial projects. It sounded like he was being very generous with licensing as long as youâre not building a Soulver clone, so drop him a note if you think youâd like to use them.
Isnât it great to be back to not having a beta version of Xcode installed? I hope you enjoyed the last few days because that time is over. đ
But why would you install the Xcode 14.1 beta that came out two days ago? Well, if youâre anything like me, then your current favourite feature of iOS 16 is the new lock screen widgets, and iOS 16.1 will enable live activities on the lock screen (and in the Dynamic Island, for those with a Pro). Apple has even published two new articles on displaying live data and updating/ending a Live Activity to get you started!
Time to start coding that Live Activity, right? Did that Xcode beta download finish yet?
As always-on screens become standard across in-use iPhones over the next few years, will these constantly updating widgets become an essential part of how we (and our users) use our phones? Itâs so difficult to know. Sure, the examples of an in-progress sports game or a time-sensitive delivery (the documentation uses a Pizza delivery as its example) are obvious! But will people use and appreciate this feature in your app if you spend time implementing it?
Or is it another Launchpad (which was deemed important enough to make it onto hardware buttons!), iBeacons, iMessage apps, or so many others that looked amazing at launch but didnât pan out into real-world use? I intend no criticism of Apple with that last sentence. None of us can be sure of which features will be truly successful before they launch, no matter how much market research or planning we do.
If I had to make a guess, I think Live Activities stand a good chance of being successful. The new lock screen is something everyone with an iPhone uses multiple times every day, and thatâs a good start. But as always, itâs a balance. Do you have a compelling use case that you canât ignore? Will you get some marketing juice out of being there with a day-one Live Activity release? Will Apple feature your app? Or would it be better to wait and see how the dust settles?
If you need to spend more than a couple of minutes thinking about how you could use this API, it might be good to hold off on that beta Xcode download for a few weeks.
I donât think Iâve ever written about it before, but I believe there is an analogy between software development and rock climbing. đ§ââď¸
I first started thinking about this in terms of source control. You make progress towards implementing a feature, then commit. Make some more progress, and commit again. Then repeat that cycle until you complete your task. Every commit is a safety net, protecting you from going too far from your âlast known goodâ state. It allows you to experiment knowing that youâre never further away from safety than typing git reset --hard
.
Iâm no rock climber, but if Cliffhanger taught me anything, I know that climbing is a lot like using git! đ Every commit is a piton hammered into the rock face, and no matter how tricky your next move is, the rope attached to that last metal spike will catch you if you donât make it. Eventually, youâll reach the top of the pitch and look back at the rope looped through all your git history.
If we had thought to write every feature in the Swift Package Index from scratch today, it would have been too big a task to take on, but software releases also act like pitons. So like a rock climber, we put our first foot on the rock face with a system that gathered data from package manifests, then hammered some metal into the rock with a release before adding ingestion of metadata from GitHub. We then added piton after piton until we could create a build system for compatibility testing. Adding documentation generation to that build system wasnât trivial, but it was possible because of all those previous releases.
Thereâs a reason Iâm talking about this, of course. This week we hammered in our 500th piton and rolled out versioned documentation for the Swift community. There are full details in the launch blog post, but the cliff notesš are that if package authors opt in, weâll permanently host DocC-generated documentation for every released package version.
It would not have been possible without the previous 499 releases.
š Yes, this pun is very much intended! đ
This week saw Apple announce the 2022 App Store Awards winners. Congratulations to everyone on that list! I hope your blue cubes are as beautiful as they look in the photos. đŚ
If your goal is to join the Apple Design Award or App Store Award winners, this is a great time to look at what Apple values in an app and plan out a route to put your app in a better position to get picked, because itâs certainly possible to do that.
Start with the basics. Make sure your app is useful, reliable, and well-designed, but itâs about more than that. Apple also values great accessibility, localisation, and making appropriate use of modern platform features. Have you done all that? The bad news is you just increased your chances of an award from 0% to slightly above 0%. đŹ What you need is a multiplier for all your great work.
The multiplier is letting Apple know about your app! Look at the winners and navigate through to their App Store listings. Apple had already featured the vast majority in App Store âstoriesâ, and many have an Editors Choice badge, too. None of these apps has come from nowhere, and even if they havenât been around for a long time, they got onto Appleâs radar quickly.
I can hear what youâre saying now ⌠âBut I donât know anyone at Apple. How do I get my app in range of that radar youâre talking about?â
Itâs not a secret. Apple have a page titled âGetting Featured on the App Storeâ! Thereâs a huge set of tips for ensuring your app is in great shape (better than my list above), and then thereâs a section titled âTell us your storyâ with a button. You know what to do⌠đ
You have nothing to lose using that form every time you make a significant update to your app or can tell a new story about your app. If you canât think of anything to say about your app, thatâs something you need to work on, and not just so you get featured. Keeping active with marketing takes planning and lots of work.
So, take a good look at this yearâs App Store Award winners. Learn from them and take inspiration from them, then tell Apple all about it, and maybe itâll be your app on the list next year. đ¤
Open Source Project Lead - SwiftUI @ DockYard â We have a high-value open source project that we need an experienced Swift/SwiftUI engineer to help us complete. Experience with Elixir is a plus. â Remote (Anywhere)
Junior, Senior, Lead iOS Engineers & Eng. Managers @ Capital One â We are a Bank/FinTech that reaches tens of millions of consumers every day. We're mobile first and have 200+ native mobile devs. We make use of Swift, Combine, Bazel, Xcodegen, Fastlane, etc. Our app is always in the top 10 Finance apps. We're looking to hire 40+ devs & managers of all levels! â Remote (within US timezones) with some on-site work (United States in IL, NY, or VA)
iOS Engineer @ onX â Are you an iOS developer who loves the outdoors? Join onX! If youâre passionate about writing great software, love playing outside, and believe in protecting access to public lands â then join our team, where we empower millions of outdoor enthusiasts to explore the unknown! â Remote (within US timezones)
iOS Engineer @ ProtĂŠgĂŠ â ProtĂŠgĂŠ is looking for a passionate, hardworking, detail-oriented engineer to help make it easier for people to access their dream careers. The experiences you make possible will shape the future of both our business and our amazingly talented protĂŠgĂŠs. â On-site (United States in IL) with some remote work (within US timezones)
SwiftUI Engineer @ Eimy â Eimy develops consumer electronics and services that improve the lives of a billion users worldwide. Our Munich team is hard at work to make our dream of better communications for everybody a reality. We are looking for iOS Engineers to help shape our state-of-the-art SwiftUI apps. â On-site (Germany)
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)
Software Engineer @ Runway â We're a team of former mobile engineers, now building a tool that makes mobile teams' lives better. If you're up for changing stacks to build the future of mobile tooling, working closely with awesome mobile teams across the industry in the process, you'll fit right in! â Remote (within US or European timezones)
iOS Mobile Core Engineer @ FAIRTIQ â FAIRTIQ offers a great company culture, and you get the chance to work on the core product and have a real impact. Your co-workers are smart and fun too! And we offer flexible working hours and remote work in the countries where we are based. â Remote (within European timezones)
Lead iOS Developer @ Loop â We believe there are accessible, impactful mental health solutions outside of therapy & medication. We are building just that, starting with a focus on Social Anxiety, a condition with no dedicated solutions impacting some 25 million adults in the US. â Remote (Anywhere)
iOS Engineer @ sengaro GmbH â We offer an exciting position in the heart of the Alps (Innsbruck) with technical responsibility and conceptual refinements of our long-term products. They are used in the medical field by paramedics and doctors to help saving lives every day. Become part of it and support people in emergencies! â On-site (Austria) with some remote work (within European timezones)
iOS SDK Developer @ Stream â You will write and maintain our open-source SDKs that are used by hundreds of our customers and consumed by hundreds of millions of their users. â Remote (within US timezones)
iOS Developer @ Kiva Microfunds â Our organization combines the culture and technological passion of an internet start-up with the compassion and empathy of a non-profit to create impact and opportunity at a global scale. Our team is growing as we pursue exciting new opportunities to create a financially inclusive world. â On-site (United States) with some remote work (within US timezones)
Senior iOS Developer @ Komoot â We love Tech. We love Nature. We work hard to make it easy for everyone to explore the worldâs most beautiful places. Today, millions of people explore nature with our apps. Their experiences are what drive us and make us smile every day. â Remote (within European timezones)
iOS Engineer @ Fjorden â We are a small team and you would be our first iOS engineer, next to Florian our CTO. Together we will build & ship our camera app (around 60% done today), and design an SDK other camera apps can integrate to take full advantage of the Fjorden grip. â Remote (within European timezones)
iOS Engineer @ Branch â Branch is on a mission to help working Americans grow financially. We do this by helping companies accelerate payments and empower working Americans with accessible, fee-free financial services. Weâre committed to building and delivering more inclusive and transparent financial products. â Remote (within US timezones)
Senior iOS Engineer @ onX â Are you an iOS developer who loves the outdoors? Join onX! If youâre passionate about writing great software, love playing outside, and believe in protecting access to public lands â then join our team, where we empower millions of outdoor enthusiasts to explore the unknown! â Remote (within US timezones)
macOS Platform Engineer @ Vectorworks â Super Bowl half-time shows, the World Trade Center Memorial, and the Oscarâs stage were designed using our 3D modeling software. With over 685,000 global users in the Entertainment, Architecture and Landscape industries, we are building a Vectorworks community who are influencing the next generation of design with our software on both Mac and Windows. Join us! â Columbia MD
iOS Engineer @ onX â onX is a pioneer in digital outdoor navigation, where we bring our outdoor passion to work every day with a singular goalâto awaken the adventurer in everyone. We do this by engineering industry-leading technology, and by crafting dynamic outdoor experiences. Come join a team that empowers millions of outdoor enthusiasts to explore the unknown! â Remote within the US
Senior iOS Engineer @ National Public Radio â This is a unique opportunity to join a dynamic team working to improve our iOS products. â Washington DC
Senior iOS Software Engineer @ TeamSnap â If you find sharing party parrot emojis in Slack amusing, TeamSnap is the place for you. We've been remote since before remote was cool. You'll work on a team with big ideas and tiny egos to develop a product that has been featured by Apple at WWDC (Worldwide Developer Conference) and has 23+ million users. â Remote within the US
Principal iOS Software Engineer @ Tripadvisor â Great opportunity to work with the latest Swift and Swift UI iOS development technology on MVVM architecture. Help drive key architectural discussions and designs leading from the front as a technical authority within the talented iOS team. â Boston MA
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. As we revolutionize the way people manage their expenses, being part of the Expensify team means building the easiest, fastest, and most efficient platform to automate everything expense-related. â San Francisco, Portland, Michigan, New York, London, or Melbourne
Senior iOS Software Engineer @ Doximity â Doximity, the medical network used by over 70% of US clinicians, is hiring passionate Senior iOS engineers (remote-friendly!). You'll get to 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. Apply today! â Remote within the US
Mobile Automation Build Engineer @ Doximity â Come work on a small team, inside a fast growing, largely remote company! In this role, you will maintain the mobile (iOS and Android) CI/CD pipelines, and ensure our app continues to make the lives of healthcare professionals better on a daily basis. â Remote within the US
iOS Engineer @ Turo â Help us build product features that delight guests who book vehicles on our platform and enable hosts with the tools they need to manage their fleet. The iOS team is actively transitioning our iOS codebase from Objective-C to Swift, and weâre learning SwiftUI togetherâin labsâas we migrate our internal, watchOS, and tvOS apps. Itâs really an exciting time to be an Apple-centric engineer at Turo. â San Francisco CA
As John Ternus left us with âjust one more product to go, Mac Proâ at the end of last weekâs event, my thoughts turned to how Apple might get to that Pro machine from the Studio.
The biggest problem facing the Apple silicon Mac Pro isnât CPU or GPU performance. Itâs memory. You can configure an M1 with a maximum of 16GB, increasing to 32GB for the M1 Pro and 64GB for the M1 Max. With the introduction of the M1 Ultra, the maximum RAM is now up to 128GB. Thatâs impressive, but itâs a long way from the 1.5TB of RAM you can configure in a current Intel-based Mac Pro.
So how do they get there? Letâs speculate a bit.
The M1 Ultra is effectively a doubled M1 Max, so letâs assume Apple can keep going down that route, and the final form of the M1 family might be a doubled Ultra. Thatâd be 40 CPU cores, 128 GPU cores, and a 64 core neural engine. Itâd also take the maximum memory to 256GB. Thatâs a lot, but itâs still only 1/4 of a terabyte.
So far, so predictable. Letâs stretch a little. A straight up doubling of the Ultraâs RAM configurations would get us to 128/256GB of RAM. How about if there were one more option, 512GB? Weâre getting closer and need only one more iteration of doubling everything to get to a TB!
I think that final doubling might come from the generational change from M1 to M2. I wouldnât be surprised if one of the enhancements with the next M-series generation might allow more RAM on the lower-end chips. For example, itâd be wonderful if the âstandardâ M2 could be 16/32GB instead of 8/16GB. Following that logic, the M2 Ultra would be 128/256GB, and the hypothetical chip I just talked about, if it arrives as part of the M2 generation, ends up as 256/512/1024GB. Thatâs in the same order of magnitude as 1.5TB, all without needing to resort to off-die RAM, which would be a significant architectural departure.
My speculation does all feel like a stretch, and no one at Apple has ever publicly said theyâre even aiming for 1TB RAM with the new Mac Pro, but it was fun to think about how they might get there. All we know for sure is that itâs not going to be cheap! đ¤
UPDATE: I had missed that someone in the presentation had said âour last chipâ or something similar, indicating that the Ultra may be the last in the M1 series of chips. Oops! Although, Iâd not read too much into that statement. Apple doesnât tend to tell the whole story. It was a miracle that the Mac Pro even got a mention in this event!