41554 blogs · [ { "id": "01a0d48c-12ba-7334-bca2-9bc481510029", "title": "Fun with AI", "url": "https://troz.net/post/2026/fun-with-ai/", "published_at": "2026-09-19T08:48:31+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627431a125e4", "title": "macOS Apps Step by Step Minor Update", "url": "https://troz.net/post/2026/macos-apps-step-by-step-minor-update/", "published_at": "2026-06-24T10:59:57+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-6274321cd98f", "title": "WWDC 2026 First Thoughts", "url": "https://troz.net/post/2026/wwdc2026_first_thoughts/", "published_at": "2026-06-19T18:48:16+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627432b22a3f", "title": "In Praise of SwiftUI", "url": "https://troz.net/post/2026/swiftui_praise/", "published_at": "2026-05-26T15:00:00+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-6274335d03c6", "title": "macOS Apprentice: 3rd Edition", "url": "https://troz.net/post/2026/macos-apprentice-update-3/", "published_at": "2026-05-13T11:18:04+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-6274344f86b1", "title": "Playing in the Mac App Sandbox", "url": "https://troz.net/post/2026/playing_mac_sandbox/", "published_at": "2026-03-23T14:57:12+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-6274345eefe9", "title": "NSTableView scroll bug in macOS Tahoe", "url": "https://troz.net/post/2026/appkit-table-scroll-bug-in-macos-tahoe/", "published_at": "2026-01-31T09:39:37+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627434666eb8", "title": "Moving from Process to Subprocess", "url": "https://troz.net/post/2025/process-subprocess/", "published_at": "2025-11-27T00:12:50+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743558fdf1", "title": "Black Friday Sale", "url": "https://troz.net/post/2025/black_friday_2025/", "published_at": "2025-11-23T22:08:15+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627435948543", "title": "macOS Apps Step by Step 4.0", "url": "https://troz.net/post/2025/macos_tutorials_4/", "published_at": "2025-11-05T23:44:23+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743638ac08", "title": "Apple Has Two Problems", "url": "https://troz.net/post/2025/apple-has-two-problems/", "published_at": "2025-10-28T02:01:52+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627436e5291b", "title": "SwiftUI WebView", "url": "https://troz.net/post/2025/swiftui-webview/", "published_at": "2025-08-15T11:11:18+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-6274376c30bc", "title": "SwiftUI for Mac 2025", "url": "https://troz.net/post/2025/swiftui-mac-2025/", "published_at": "2025-08-08T13:15:00+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743808fd68", "title": "WWDC 2025", "url": "https://troz.net/post/2025/wwdc_2025/", "published_at": "2025-06-23T00:00:00+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627438a4af3d", "title": "New Book: Escape from Tutorial Hell", "url": "https://troz.net/post/2025/new-book:-escape-from-tutorial-hell/", "published_at": "2025-06-18T10:30:00+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-6274394c96d1", "title": "Apple Developer Relations", "url": "https://troz.net/post/2025/apple_dev_rel/", "published_at": "2025-05-20T23:53:52+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743a0fcca4", "title": "Man Reader 2.1", "url": "https://troz.net/post/2025/man-reader-2.1/", "published_at": "2025-04-28T23:23:53+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743a42cd11", "title": "Swift Measurements", "url": "https://troz.net/post/2025/swift-measurements/", "published_at": "2025-04-16T09:47:17+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743ac50f35", "title": "Moving to Eleventy", "url": "https://troz.net/post/2025/eleventy/", "published_at": "2025-03-19T04:15:33+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743acb835e", "title": "macOS Apprentice Update", "url": "https://troz.net/post/2025/macos-apprentice-update/", "published_at": "2025-03-06T11:22:21+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743b29f562", "title": "The Mac Menubar and SwiftUI", "url": "https://troz.net/post/2025/mac_menu_data/", "published_at": "2025-02-17T07:16:34+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743bd33479", "title": "macOS by Tutorials 3.0", "url": "https://troz.net/post/2024/macos_tutorials_3/", "published_at": "2024-12-23T04:22:15+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743c2acccf", "title": "Swift Format in Xcode", "url": "https://troz.net/post/2024/swift_format/", "published_at": "2024-11-06T06:29:20+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743c68a882", "title": "App Permissions on macOS Sequoia", "url": "https://troz.net/post/2024/sequoia_app_permissions/", "published_at": "2024-10-02T01:33:26+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743d2b8906", "title": "Xcode Folders & Groups", "url": "https://troz.net/post/2024/xcode_folders_groups/", "published_at": "2024-09-17T04:12:42+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743d4c322c", "title": "Converting an App from Obj-C", "url": "https://troz.net/post/2024/app_conversion/", "published_at": "2024-09-12T00:28:24+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743d975479", "title": "SwiftUI for Mac 2024", "url": "https://troz.net/post/2024/swiftui-mac-2024/", "published_at": "2024-08-22T07:21:54+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743e7362d0", "title": "Book Building", "url": "https://troz.net/post/2024/book_building/", "published_at": "2024-08-06T01:29:44+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743e75a0e3", "title": "macOS by Tutorials", "url": "https://troz.net/post/2024/macos_tutorials/", "published_at": "2024-07-23T09:49:12+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743f22213b", "title": "Man Reader 2", "url": "https://troz.net/post/2023/manreader2/", "published_at": "2023-10-13T05:46:38+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743f773ed1", "title": "SwiftUI Data Flow 2023", "url": "https://troz.net/post/2023/swiftui-data-flow-2023/", "published_at": "2023-07-09T23:22:54+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62743fc01b1c", "title": "macOS Apprentice", "url": "https://troz.net/post/2023/macos_book_2/", "published_at": "2023-06-28T23:48:37+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627440330e79", "title": "Sparkle", "url": "https://troz.net/post/2023/sparkle/", "published_at": "2023-04-11T01:48:38+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-6274412c4294", "title": "To-Day", "url": "https://troz.net/post/2023/to-day/", "published_at": "2023-03-08T04:58:01+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-6274416f821c", "title": "New Links", "url": "https://troz.net/post/2022/new_links/", "published_at": "2022-12-16T22:47:35+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627441ae7c32", "title": "SwiftUI for Mac 2022", "url": "https://troz.net/post/2022/swiftui-mac-2022/", "published_at": "2022-06-17T04:18:32+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-62744297ee6e", "title": "Writing Setup", "url": "https://troz.net/post/2022/setup/", "published_at": "2022-06-17T04:08:46+00:00" }, { "id": "01a08c58-eb28-722c-b5a5-627443928471", "title": "WWDC 2022 Wishlist", "url": "https://troz.net/post/2022/wwdc_wishlist/", "published_at": "2022-04-25T09:00:36+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2dc092903", "title": "macOS Book", "url": "https://troz.net/post/2022/macos_book/", "published_at": "2022-04-09T00:53:43+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2dcf70575", "title": "Site Search", "url": "https://troz.net/post/2021/site_search/", "published_at": "2021-10-24T23:57:12+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2ddf0a565", "title": "The Apple DTK Gamble", "url": "https://troz.net/post/2021/apple_dtk_gamble/", "published_at": "2021-02-04T08:57:21+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2de0ab585", "title": "SwifUI Mac Menus", "url": "https://troz.net/post/2021/swiftui_mac_menus/", "published_at": "2021-01-24T05:24:17+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2dec02550", "title": "SwiftUI Data Flow", "url": "https://troz.net/post/2019/swiftui-data-flow/", "published_at": "2021-01-24T05:17:14+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2dee971a5", "title": "Crossfix", "url": "https://troz.net/post/2020/crossfix/", "published_at": "2020-11-22T22:59:45+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2df9644ed", "title": "SwiftUI for Mac on Big Sur", "url": "https://troz.net/post/2020/swiftui_mac_big_sur/", "published_at": "2020-07-08T09:40:16+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e0774b43", "title": "SwiftUI Snapshot Testing", "url": "https://troz.net/post/2020/swiftui_snapshots/", "published_at": "2020-05-17T08:50:09+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e10cccb0", "title": "Name This App", "url": "https://troz.net/post/2020/name_this_app/", "published_at": "2020-05-09T01:26:21+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e1ac7489", "title": "SwiftUI Color", "url": "https://troz.net/post/2020/swiftui-color/", "published_at": "2020-05-09T01:26:08+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e1b092d6", "title": "Custom Fonts in iOS & macOS apps", "url": "https://troz.net/post/2020/custom-fonts/", "published_at": "2020-04-01T00:27:59+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e29da991", "title": "SwiftUI for Mac Extras", "url": "https://troz.net/post/2020/swiftui_for-mac-extras/", "published_at": "2020-01-27T01:32:57+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e2b4ff7d", "title": "SwiftUI for Mac - Part 3", "url": "https://troz.net/post/2019/swiftui-for-mac-3/", "published_at": "2019-12-15T07:28:20+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e30e4ae6", "title": "SwiftUI for Mac - Part 2", "url": "https://troz.net/post/2019/swiftui-for-mac-2/", "published_at": "2019-12-15T07:28:10+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e3d96a07", "title": "SwiftUI for Mac - Part 1", "url": "https://troz.net/post/2019/swiftui-for-mac-1/", "published_at": "2019-12-15T07:28:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e425403c", "title": "SwiftUI First Thoughts", "url": "https://troz.net/post/2019/swiftui_first-thoughts/", "published_at": "2019-08-18T05:00:05+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e4c88b84", "title": "Learning Swift - Tuples", "url": "https://troz.net/post/2019/learning-swift-tuples/", "published_at": "2019-02-03T09:48:51+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e5c86227", "title": "The End of Pic-a-POD", "url": "https://troz.net/post/2018/the-end-of-picapod/", "published_at": "2018-10-05T23:38:20+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e5eee567", "title": "Moving to the Dark Side - Part 2", "url": "https://troz.net/post/2018/moving-to-the-dark-side-2/", "published_at": "2018-10-05T22:29:35+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e6bb0e31", "title": "Moving to the Dark Side", "url": "https://troz.net/post/2018/moving-to-the-dark-side/", "published_at": "2018-09-26T06:49:43+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e7b6ea23", "title": "Swift Strings Helper", "url": "https://troz.net/post/2018/swift-strings-helper/", "published_at": "2018-06-21T04:45:59+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e839459e", "title": "Functional Programming in Swift", "url": "https://troz.net/post/2018/functional-programming/", "published_at": "2018-06-14T04:18:53+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e8ec55ce", "title": "World Time In Words iOS Update", "url": "https://troz.net/post/2018/world-time-in-words-ios-update/", "published_at": "2018-06-14T00:41:46+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e955692b", "title": "Privacy Policy", "url": "https://troz.net/post/2018/privacy-policy/", "published_at": "2018-05-25T23:51:56+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2e9da2dd8", "title": "App Updates", "url": "https://troz.net/post/2018/app-updates/", "published_at": "2018-05-25T23:22:57+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2eab65309", "title": "Consistent Swift Style", "url": "https://troz.net/post/2018/swiftlint/", "published_at": "2018-03-30T23:35:21+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2eb7a6b9e", "title": "Icon Builder 5", "url": "https://troz.net/post/2018/icon-builder-5/", "published_at": "2018-02-18T00:19:18+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2ebb1a602", "title": "NCSS 2018", "url": "https://troz.net/post/2018/ncss-2018/", "published_at": "2018-01-05T01:33:35+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2ec2b2f28", "title": "Mark Time", "url": "https://troz.net/post/2017/marktime/", "published_at": "2017-12-11T23:14:07+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2ecfa93c0", "title": "Moving to Hugo", "url": "https://troz.net/post/2017/moving-to-hugo/", "published_at": "2017-11-29T07:42:57+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2ed969638", "title": "JSON Parsing in Swift 4", "url": "https://troz.net/post/2017/json-parsing-in-swift-4/", "published_at": "2017-06-18T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2ee8d05ca", "title": "Posting from my new iPad", "url": "https://troz.net/post/2017/posting-from-my-new-ipad/", "published_at": "2017-06-17T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2eece7177", "title": "JSON Feed for TrozWare", "url": "https://troz.net/post/2017/json-feed-for-trozware/", "published_at": "2017-05-20T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2efc43f25", "title": "Blackmail Marketing", "url": "https://troz.net/post/2017/blackmail-marketing/", "published_at": "2017-03-08T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f009c77d", "title": "NCSS 2017", "url": "https://troz.net/post/2017/ncss-2017/", "published_at": "2017-01-06T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f0217225", "title": "Looking for beta testers", "url": "https://troz.net/post/2016/looking-for-beta-testers/", "published_at": "2016-11-17T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f09fec3a", "title": "Another Man Reader Update...", "url": "https://troz.net/post/2016/another-man-reader-update/", "published_at": "2016-11-05T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f0b51ab5", "title": "Man Reader Update", "url": "https://troz.net/post/2016/man-reader-update/", "published_at": "2016-10-12T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f17b9b19", "title": "Podcasting", "url": "https://troz.net/post/2016/podcasting/", "published_at": "2016-10-11T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f19012dd", "title": "Dice Pass Updated", "url": "https://troz.net/post/2016/dice-pass-updated/", "published_at": "2016-09-17T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f26a4804", "title": "How much work does Icon Builder save you?", "url": "https://troz.net/post/2016/how-much-work-does-icon-builder-save-you/", "published_at": "2016-09-17T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f2a4d68d", "title": "Retiring old apps", "url": "https://troz.net/post/2016/retiring-old-apps/", "published_at": "2016-09-15T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f33e757b", "title": "Man Reader updated to 1.6", "url": "https://troz.net/post/2016/man-reader-updated-to-1.6/", "published_at": "2016-07-16T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f41c8acb", "title": "Dice Pass Mac Update", "url": "https://troz.net/post/2016/dice-pass-mac-update/", "published_at": "2016-07-03T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f4d4a772", "title": "Learning Swift - Sets", "url": "https://troz.net/post/2016/learning-swift-sets/", "published_at": "2016-05-28T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f507c340", "title": "19th Hole Golf Scorer 3.1", "url": "https://troz.net/post/2016/19th-hole-golf-scorer-3.1/", "published_at": "2016-05-07T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f59c7b68", "title": "My Year With Apple Watch", "url": "https://troz.net/post/2016/my-year-with-apple-watch/", "published_at": "2016-04-28T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f63f0901", "title": "How To Confuse TestFlight", "url": "https://troz.net/post/2016/how-to-confuse-testflight/", "published_at": "2016-04-24T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f6849151", "title": "Road Trip Apps", "url": "https://troz.net/post/2016/road-trip-apps/", "published_at": "2016-04-07T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f6f6bb25", "title": "Structs vs Classes", "url": "https://troz.net/post/2016/structs-vs-classes/", "published_at": "2016-03-30T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f71750a4", "title": "Learning Swift - Optionals", "url": "https://troz.net/post/2016/learning-swift-optionals/", "published_at": "2016-03-12T04:24:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f74a3fb9", "title": "Learning Swift - For-Loops", "url": "https://troz.net/post/2016/learning-swift-for-loops/", "published_at": "2016-03-12T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f7d84549", "title": "Learning Swift - Generics", "url": "https://troz.net/post/2016/learning-swift-generics/", "published_at": "2016-02-29T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f87d689e", "title": "Singleton to Protocol", "url": "https://troz.net/post/2016/singleton-to-protocol/", "published_at": "2016-02-26T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f8930760", "title": "Three Rules for Writing Better Swift", "url": "https://troz.net/post/2016/three-rules-for-writing-better-swift/", "published_at": "2016-02-24T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f92a9038", "title": "Configuring Xcode", "url": "https://troz.net/post/2016/configuring-xcode/", "published_at": "2016-02-17T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2f9cfea59", "title": "How do I start to learn Swift?", "url": "https://troz.net/post/2016/how-do-i-start-to-learn-swift/", "published_at": "2016-02-16T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2faa4dde6", "title": "Icon Builder 3.2 Released", "url": "https://troz.net/post/2016/icon-builder-32-released/", "published_at": "2016-02-10T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2faabc5c0", "title": "Why is Swift so great?", "url": "https://troz.net/post/2016/why-is-swift-so-great/", "published_at": "2016-02-10T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2fb157f58", "title": "Learning Swift - An Introduction", "url": "https://troz.net/post/2016/learning-swift-an-introduction/", "published_at": "2016-02-09T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2fb9d0959", "title": "New Twitter account", "url": "https://troz.net/post/2016/new-twitter-account/", "published_at": "2016-02-09T00:00:00+00:00" }, { "id": "01a08c58-eb29-7333-9f67-eac2fc312e26", "title": "Possible issues with Icon Builder & Watch icons", "url": "https://troz.net/post/2016/possible-issues-with-iconbuilder/", "published_at": "2016-02-06T00:00:00+00:00" } ] posts Claim your blog
Back to TrozWare
Blog · corpus.blog/blogs/troz.net/posts

TrozWare

troz.net

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016