Ammad

@anosidium
157 Followers
0 Following
179 Posts

Mac & iOS Developer.

Develops #Oliphaunt, a native Mac client for Mastodon.
Also writes #HacKit, a native Mac app for browsing Hacker News.

• Oliphaunt: https://apps.apple.com/app/id6745527185
• HacKit: https://apps.apple.com/app/id1549557075

GitHubhttps://github.com/anosidium
HacKithttps://apps.apple.com/app/id1549557075
Oliphaunthttps://apps.apple.com/app/id6745527185

Could someone explain why Apple has put an iPhone chip in the MacBook Neo? Why? Is the future of the Mac based on iPhone-class chips?

Likewise, Apple has put a Mac chip in the iPad Pro, yet it still runs iPadOS. What’s the point of that?

What is Apple’s goal with this chip strategy?

#Apple #Mac #iPhone #iPad #AppleSilicon #AppleChip

I love the Midnight finish on the MacBook Air, I just wish Apple would offer it on the MacBook Pro.

I’m also a fan of the classic white MacBook. It would be nice to see it revived with modern MacBook Pro internals.

#Mac #MacBook #MacBookPro #MacBookAir

I’m excited to share that Oliphaunt is now available on the App Store!

It’s a Mastodon client built specifically for the Mac using AppKit with some SwiftUI. The goal was to create a well-behaved Mac application that follows the platform’s design language, adopts macOS idioms and feels natural to Mac users, rather than being a scaled-up iOS port, cross-platform app or anything else.

App Store: https://apps.apple.com/app/id6745527185

#Oliphaunt #Mac #macOS #OSX #AppKit #Swift #SwiftUI #Fediverse #Mastodon

What’s the easiest way to take screenshots for the Mac App Store?

You can’t just grab a screenshot from your desktop and upload it. They need to be in a 16:10 aspect ratio and exactly one of the following sizes:

• 1280 × 800
• 1440 × 900
• 2560 × 1600
• 2880 × 1800

Simply resizing a standard desktop screenshot would distort the image.

How are other people doing this without it looking stretched or skewed?

#macOS #MacDev #macOSDev #MacAppStore #AppStore #AppStoreOptimisation #Screenshots

StoreKit 2: has anyone seen Transaction.updates or Product.SubscriptionInfo.Status.updates stop emitting after the first purchase? In my app the initial transaction is observed (user-initiated or via Xcode Transaction Manager) but subscription renewals and later transactions never arrive. Same StoreKit config works perfectly in a fresh minimal project. Any known pitfalls or fixes? Happy to share details in a thread.

#StoreKit2 #StoreKit #InAppPurchase #Swift #Xcode

Could somebody explain the purpose of W Social? Mastodon already exists and is German-made, so what’s the point? Bluesky and X are American-made. Is choosing an instance really that confusing or off-putting?

#WSocial #Mastodon #Bluesky #Twitter #MadeInEurope #Fediverse #SocialMedia #EUTech

More recently I have been working on my second macOS app, #Oliphaunt. A Mastodon client for the federated social network built on the ActivityPub protocol. Developing it taught me a great deal about persistence, concurrency, networking, design patterns plus more. I am keen to return to HacKit to apply this knowledge, improve the app further and work on an iOS port.

You can download HacKit here: https://apps.apple.com/app/id1549557075

#HackerNews #AppKit #Cocoa #Swift #MacDev #macOSDev #HacKit

HacKit App - App Store

Download HacKit by Ammad Ur Rehman on the App Store. See screenshots, ratings and reviews, user tips, and more games like HacKit.

App Store

Today marks HacKit’s 5th anniversary. My first macOS app published on Friday 22nd January 2021. It is a Hacker News reader written in Swift using AppKit with no SwiftUI. The name HacKit is a portmanteau of Hacker News and AppKit.

It is genuinely rewarding to know that HacKit has been downloaded around the world including in underrepresented countries and is used daily.

#HackerNews #AppKit #Cocoa #Swift #SwiftUI #macOS #Mac #MacDev #macOSDev #HacKit

I got my Digg invite code a few days ago but only got around to registering today. Did anyone else get theirs yet, or even know Digg’s making a comeback?

#Digg

@mattiem Since you’re well versed in Swift 6 Concurrency, what do you think about this?

I prefer case no. 1 because I like to keep the closure compact and include only the code that’s actually needed. Swift 6 Concurrency doesn’t like it as NSFetchRequest isn’t Sendable. Case no. 2 avoids the warning.

The NSFetchRequest will never be mutated and is actually safe despite what the compiler says.

Is there a way to suppress this warning for case no. 1, or should I just stick with case no. 2?