stendap_sogodni

Плагіни для застосунків на Swift (та macOS)

Я тут колись писав, як мій застосунок для ведення справ вміє створювати проєктну документацію в Obsidian. Це дійсно зручно та я досі користуюся цією звʼязкою. Насправді інтеграція з Obsidian тільки збільшилась — бо тепер я також автоматично підчищаю файли завершених проєктів. Та ще зберігаю для кожного файлу "мабуть/колись" дату останнього перегляду.

Та хоч останнього разу писав, що розробка для себе — дуже цінно, але застосунок поступово розростається, набуває завершеності, та хотілося б з нього зробити продукт. Втім, що робити з вище описаними функціями — назвемо їх "інтеграцією з базою знань"?

Я точно не буду робити базу знань власноруч: ані сил немає, ані сенсу. Навіть мені самому зручніше працювати в Obsidian. Але привʼязуватись до Obsidian жорстко теж сенсу немає, тим паче навіть в Obsidian в кожної людини свої підходи. Простий вихід — це прибрати інтеграцію, залишити тільки можливість вставляти посилання (яка вже й так є): посилання на файл в Obsidian, сторінку вебзастосунка тощо.

Але також подивляюся в бік плагінів. Не мав великого досвіду з плагінами, отже, гадав, що там все складно — треба тягнути якийсь інтерпретатор, обирати мову, і таке інше. Виявилося, що в macOS є система динамічного завантаження бібліотек — приблизно так само, як .so в Linux чи DLL в Windows, тут є Bundle.

Причому користуватися ними на Swift дуже приємно. Спочатку оголосити протокол, який виконуватимуть плагіни. (Протокол звичайний свіфтівський.) Ну й, звісно, його реалізувати та скомпілювати. Далі залишається завантажити Bundle, викликати в нього метод principalClass - яким вже можна користуватися як звичайним кодом.

На iOS, звісно, завантаження динамічних бібліотек заборонено, але мені поки, припустимо, і не потрібно.

#Swift

Розробка для себе

Памʼятаєте, в мене є стилі для канви та мікрозастосунок…

leonid.shevtsov.me
Sören Gade

I just migrated @bandwidth to GitHub, and I find Copilot a good way to have at least some sort of feedback on my own pull requests.
#Swift #iOS #copilot

Natalia Panferova

If you haven't got my book SwiftUI Fundamentals yet, this week there is a great chance to grab it with a 30% discount! Folks from Those Who Swift are running a special promotion, check out their latest newsletter for details: thosewhoswift.substack.com/p/t
#SwiftUI #iOSDev #Swift

troz

I have just published my almost-annual article on the new features of SwiftUI and Swift as they apply to Mac apps:

troz.net/post/2025/swiftui-mac

I'm not using HTTP Cats this year, but the icon has a cat, so all is well.

#macOS #SwiftUI #Swift #WWDC #WWDC2025

Natalia Panferova

The July issue of the Nil Coalescing newsletter is out! It’s been sent to all email subscribers and is now also available online. I’ve shared some key takeaways from Apple’s WWDC recap event, plus links to my latest videos and blog posts: nilcoalescing.com/newsletter/2
#iOSDev #Swift

Nil Coalescing - Nil Coalescing Newsletter - July 2025

We are now almost two months into the iOS 26 beta period,…

Nil Coalescing
David Bureš

Just got a simple app idea:

You put in a Reddit username, and based on your requirements, it will go through the last few comments of that user and use an LLM to tell you if it’s worth arguing with them

Like and subscribe and hit that bell if you want to follow the development of this app

#swift #swiftui #macdev #iOSDev

Jul 30, 2025, 22:35 · · · 0 · 0
Jan Armbrust 

Day 2 and already shipping the second update 😂 Now FINALLY you can buy PromoKit Pro lifetime correctly, thanks to @sergpryimachuk I found out it wasn’t possible in the first version. If you like my work and could spare 2,99 $ I’d be really happy about your contribution 🫰🏻

#BuildInPublic #IndieDev #iOS #Dev #iOSDev #Swift #SwiftUI

Jan Armbrust 

Finally it’s done 🥹 Today I’m releasing my 6th app PromoKit 🚀 I built it during my Academy time but never found the time to polish and release it. Thank you to @Llpv for the beautiful app icon 😍 If you need great app icons, he is your guy 🙌🏻 A huge thanks to my mentors at the Academy for pushing me and helping me during the way. Let me know what you think and what you’d improve. Get it here: promokit.app

#BuildInPublic #IndieDev #iOS #Dev #iOSDev #Swift #SwiftUI

Promo Kit

Manage promo codes for your apps like a pro

promokit.app
obrhoff

Looking at CKSyncEngine, I find it a bit surprising that this wasn’t implemented. Wouldn’t you want to know which table or record type you’re deleting from, rather than just passing in an ID with no context?

It works fine in the example Apple provided, but conveniently they only sync a single type of entity. Now it seems people encode the Record Type into the ID and parse it out. 😭
#iosdev #macosdev #swift

github.com/apple/sample-cloudk

How to determine from which array to fetch data for upload? · Issue #12 · apple/sample-cloudkit-sync-engine

Assuming that two sets of data are stored locally contacts…

GitHub
EAS Watcher

#EAS #WEA for Chippewa, #MN; #Lac qui Parle, #MN; #Swift, #MN: National Weather Service: #TORNADO WARNING in this area until 1:00 PM CDT. Take shelter now in a basement or an interior room on the lowest floor of a sturdy building. If you are outdoors, in a mobile home, or in a vehicle, move to the closest substantial shelter and protect yourself from flying debris. Check media. Source: NWS Twin Cities/Chanhassen MN ** DO NOT RELY ON THIS FEED FOR LIFE SAFETY, SEEK OUT OFFICIAL SOURCES ***

Chris

I’ve written a little post on how to handle (De)Coding errors with Codables in #Swift without breaking your whole code.
Especially if you work with arrays or enums.

somekindofcode.com/handling-co

#swiftlang

Handling Codable Parsing Errors

Stop API calls break your Swift code and learn how…

Some Kind Of Code
Jul 26, 2025, 19:18 · · · 1 · 0
iOS Dev Jobs

👋 We’re hiring an Apple Engineer at Doist! Join us to build legendary tools like Todoist and Twist; simple yet powerful. Work from anywhere, own projects end to end, and collaborate asynchronously in a team that values ambition, mastery, independence, and communication. iosdevjobs.com/jobs/m-5b9d2bb0 #Swift #SwiftLang #iOSDev #MacDev #iOSDevJobs

Apple Engineer @ Doist

We build simple yet powerful productivity tools like…

iosdevjobs.com
distrustful dinosaurs

imagine you're a bug flying around minding your own business and this is the last thing you see 🐝😱🪶

#birds #swift #swifts #urbanwildlife

GripNews

🌖 Introducing swift-erlang-actor-system
➤ Swift 與 Erlang 的跨語言協作新途徑
forums.swift.org/t/introducing
這篇文章介紹了一個名為 swift-erlang-actor-system 的新系統,它讓 Swift 程式可以連接到一個分佈式的 Erlang 叢集。這個系統利用 Erlang 的 C node 功能,讓 Swift 的分散式 actor 與 Erlang 節點進行通訊。文章詳細介紹瞭如何安裝、設定和使用這個系統,並展示了一個簡單的聊天程式範例。
+ 這個系統聽起來很有潛力,可以解決 Swift 應用程式與現有 Erlang 系統整合的問題。
+ 期待看到更多使用這個系統的實際案例,瞭解其效能和穩定性如何。
#Swift #分佈式系統 #Erlang

Introducing swift-erlang-actor-system

I'm excited to share a new actor system we've been…

Swift Forums
Sean Coates

I was recently asked “Why did you choose #Swift for Studioworks?”

There are reasons that I intend to write about; strong-but-approachable types is a key reason. I was just catching up on a talk from @mattiem where he said the following:

“[Swift Concurrency] is taking information that—you *hope*—you can find in the documentation and it is moving it into the type system in a way that you can no longer ignore.”

Indigenous first-class strong typing is a beautiful thing.

youtu.be/N5iIXwBW54A

- YouTube

Enjoy the videos and music you love, upload original…

www.youtube.com
Jul 22, 2025, 18:16 · · · 1 · 0