Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
I have been running this blog since 2014 and it's seen several major changes along the way. I started with WordPress but it felt slow and clumsy, so in 2015 I entered the world of static site generators and transferred to Jekyll. That worked for a couple of years until Jekyll was updated from version 2 to version 3 which broke my setup. At that point I converted to Hugo which has worked fine for more than six years. But as with Jekyll, updates broke my site and I didn't know enough about how ...| TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
I gave a Masterclass on Swift at the NCSS Summer School 2018 in the University of Sydney on 9th January 2018. This post contains useful links for use in relation to the material covered during my class. --- Online Sandboxes We ❤️ Swift Sandbox IBM Swift Sandbox --- Resources Gist of Code Samples Slides from Presentation --- Contact Details Email: sarah@troz.net Twitter: @trozware --- Useful Links The Swift Programming Language Swift.org Newsletters Tutorials| TrozWare
I gave a Masterclass on Swift at the NCSS Summer School 2017 in Sydney on 8th January 2017. This post contains useful links for use during and after my class. IBM Swift Sandbox --- Sandbox Code Samples Strings Optionals Functions Closures Objects Protocols Generics --- Contact Details: Email: sarah@troz.net Twitter: @trozware Slides: NCSS 2017 Swift MC.pdf --- Useful Links: The Swift Programming Language Swift.org Newsletters Tutorials| TrozWare
Apple now allows app developers to add a video preview of their app when uploading to iTunes Connect. This video is shown to potential purchasers when they are looking at an app in the iTunes App Store, just like the screen shots. I have been working on an update to 19th Hole and since it uses a custom method for data input, I decided that a video would be really useful in this case. The first step was to work out how to record video from my iPhone. In OS X Yosemite (10.10), this can be done ...| TrozWare
Today I am experimenting with automating post generation. Firstly, there is the structure of the post Markdown document, which really boils down to the file name and the header. I have set up a macro in Typinator so that I just type the title of the post in a text document. I copy that title to the clipboard and type the shortcut. The header is then created with the title and the formatted permalink. To save the document, I use another Typinator snippet to convert the title (still in the clip...| TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist| TrozWare
Communications between the Mac menubar and a SwiftUI app are not always straight-forward. Here, I explore some of the possibilities.| troz.net
macOS by Tutorials has just been updated to version 3 for macOS 15 and Xcode 16| troz.net
In Xcode 16, Apple quietly introduced the ability to format your Swift files using Swift Format. I’m a long-time user of SwiftLint, but having such a tool built into Xcode would be a great convenience, so I decided to give it a try. Here is my description of why I use such a tool, how well it works compared to the alternatives, and how I configured it for my own purposes. Why Format Your Code? # I have always been a big fan of consistent code formatting. As I wrote years ago in Consistent S...| Posts on TrozWare
In 2012, with OS X Mountain Lion, Apple added a feature called Gatekeeper . It had been available earlier as a command line utility, but this was the first time they made it accessible through System Preferences. Gatekeeper allowed users to control which apps could be installed on their Macs by offering three options: allow apps from App Store, App Store and identified developers or Anywhere. This was the start of Apple trying to lock Macs down, similarly to how iOS devices are locked down, b...| TrozWare
In Xcode 16, project files and folders are arranged differently in the Project navigator. What used to be a group is now a folder, and this simple change has some interesting effects. At first, I was against the new scheme - in fact in my SwiftUI for Mac 2024 article, I specifically recommended reverting back to the old group method. But after doing some more reading and testing, I think the answer is not so clear cut. Since Xcode 15 doesn’t work on macOS Sequoia, now’s my last chance to ...| TrozWare
A couple of months ago, I got a message from App Store Connect pointing out that one of my iPhone apps - Berio’s Sequenza VII - had not been updated in 3 years and so would be removed from the App Store unless I updated it within 90 days. I disagree with this policy, but small developers like me can’t fight Apple. Since I want the app to remain available, I then had to consider how to update it. Once I opened the app project, I realized that the app was written in Objective-C, so I decide...| TrozWare
Mac app development using SwiftUI on macOS Sequoia| troz.net
How I constructed all the versions of macOS by Tutorials| troz.net
In April 2022, Kodeco published the first edition of macOS by Tutorials. Nothing stays the same in the world of Apple development, so I started to plan an update after WWDC 2023. At around that time, Kodceo was going through a transformation from being like a library to being more of an educational institution. Their focus is now on multi-modal courses and they are no longer interested in publishing books. Kodeco agreed to transfer the rights of the macOS by Tutorials book to me, since it was...| Posts on TrozWare
Set up your Mac app for updating using the Sparkle framework| troz.net
Creating my own minimalist todo application.| troz.net
Mac app development using SwiftUI on macOS Ventura| troz.net
Hardware and software used to write my book| troz.net
What would I like to see at WWDC 2022| troz.net
The story of how I lost because I hoped Apple would do the right thing by their developers.| troz.net
Menus in a SwiftUI Mac app| troz.net
Various ways to pass data around your SwiftUI apps.| troz.net
Explorations in building a Mac app in Swift on Big Sur.| troz.net
Using snapshot testing for SwiftUI apps| troz.net
Read the story and help me name my new app| troz.net
Using the SwiftUI Color view| troz.net
Last year, I wrote a 3 part series of articles on using SwiftUI to build a Mac app. I would like to thank everyone who contacted me about this series. It was received very well and revealed that there is still a large amount of interest in programming for the Mac. Some of the responses I got were pointing out different or better ways to do things, so I am going to list them here, adding to this post as I get new information. The relevant sections in the original posts will have links to the f...| Posts on TrozWare
Explorations in building a Mac app in Swift.| troz.net
Explorations in building a Mac app in Swift.| troz.net
Explorations in building a Mac app in Swift.| troz.net
At WWDC 2019, Apple surprised us all by announcing a completely new declarative UI framework called SwiftUI. Quoting snippets from the Apple announcements, “SwiftUI is an innovative, exceptionally simple way to build user interfaces across all Apple platforms with the power of Swift” and “SwiftUI uses a declarative syntax so you can simply state what your user interface should do.” But what does this mean and should we all adopt it now? Swift # Before discussing whether to adopt Swift...| Posts on TrozWare
I sometimes like to focus on aspects of the Swift language that get less publicity, but that I think are really useful without adding a lot of complexity. This time I am looking at tuples. There are many different ways of collecting data together in Swift, but for small amounts of transitory data, I find tuples to be an extremely convenient data structure. What is a Tuple? # A tuple is basically an array with a pre-determined length and unlike normal Swift arrays, it can hold a mix of data ty...| Posts on TrozWare
I think I wrote the first version of Pic-a-POD in 2003 and have been updating and maintaining it ever since, but the time has come to shut it down. I haven’t been able to find a picture of the original version, but here is one from 2005: And here it is today: It was written originally as a convenient way to download the daily picture-of-the-day from National Geographic and use it to set the Mac’s Desktop Picture automatically. From there is just grew with more sites added (9 at the moment...| Posts on TrozWare
Hands up everyone who can remember how to work with Swift strings, especially when it comes to substrings and ranges? …. Nobody? Me neither. So I decided that I would work it out once and create myself a library to make it easy for myself in the future. And then I thought that other people might like it too. So I have created my first open sourced project. Strings in Swift # Swift’s string handling is amazing. It is truly Unicode-compliant, so a Swift String doesn’t care whether your st...| Posts on TrozWare
What is Functional Programming and how can we use it in Swift? Search online for any definition of functional programming and you will find many different definitions, few of which are practically helpful. I have no claim to be an expert, but as a Swift enthusiast, this is what I have distilled out of the morass. What is Functional Programming? # Without providing a concrete definition, here are what I see as the 3 main goals of functional programming: use pure functions where possible avoid ...| Posts on TrozWare
Just a quick post to let you know about some recent app updates… Man Reader # Man Reader v 1.10 was released on 11 May 2018. I had to update Man Reader in November 2017 because of a really strange “feature” that arrived with macOS High Sierra. Man Reader displays the man pages as HTML which allows the tabs and internal links to work using anchor tags. These had worked for years, but under High Sierra, they just stopped working. I eventually discovered that it was because I was loading t...| Posts on TrozWare
Why is important to style your code? How do you decide on a style? Is there a way to enforce this style?| troz.net
Icon Builder 5.0 is now available from the Mac App Store. This is a complete re-write for better compatibility with Apple’s latest icon requirements. Read on to see what I have fixed and how… --- Problems # When I came to create a new iOS app recently, I found out that Icon Builder had fallen behind Apple’s requirements in three ways: The 1024 x 1024 marketing icon is now supposed to be inside the app’s icon set. Icon files must have their color profile set to sRGB (P3 is also valid f...| Posts on TrozWare
Mark Time is an application for Celestial Navigation that solves the problem of how to take an accurate time reading to go with each sextant sighting. Here is how it was developed… --- A day in the life of a software developer - “it would be great if there was an app that did…” One of the family is learning celestial navigation and was struggling with the problem that you either need a partner or more than 2 hands. The key factor is that you need to record the exact time at the moment...| Posts on TrozWare
Yesterday, I came to update my blog: I had a new post in draft form and I wanted to update the Swift code to version 4. However installing High Sierra had removed Jekyll which is the site generator that I had been using. I re-installed Jekyll but found that it had been updated from version 2 to version 3. --- Jekyll Problems # Then my problems started: missing dependencies due to the basic Jekyll install no longer including certain features, and then syntax errors due to changes in the way th...| Posts on TrozWare
Updated: 3rd September 2017. Checked syntax using Xcode 9.0 beta 6. Added section on allowing for nulls. --- Since JSON has become the de facto standard for data transfers around the internet, there has always been a lot of interest in Swift libraries to parse JSON into Swift classes or structs. Searching for “swift json library” on GitHub discovers 77 86 repositories. So why are there so many? And what has Swift 4 done to sherlock them all? The problem has always been converting loosely ...| Posts on TrozWare
Last week I got a 10.5” iPad Pro. I have had an iPad ever since the original release, but I have to confess to mainly using it for content consumption rather than creation. Since I am usually close to a Mac anyway, there didn’t seem a lot of point. But now that iOS 11 is really addressing the issue of making the iPad a “pro” device, I decided to give it a try. So here I am, sitting in an armchair with my iPad on my lap, writing this post and working out the details as I go. Any typos ...| Posts on TrozWare
jsonfeed.org has announced a new format for web site feeds, designed as an alternative to RSS. TrozWare has had an XML RSS feed for years, but I don’t think anyone ever uses it (I certainly don’t), so today I have replaced it with a JSON feed, which you can access through the button at the top of every page. I am sure many JSON Feed viewers will appear soon, but the only one I know about so far is at http://json-feed-viewer.herokuapp.com. As soon as this update to my site goes live, I wil...| Posts on TrozWare
I use my iPad to play games as a form of relaxation. Nearly all the games I play are puzzle apps with levels that can be played in a few minutes. Nearly all of them are free to install. So how do they make money? Now I would be the last person you should consult about marketing but it has always seemed to me that the best way to market your product is to convince people that it offers something they want so that they are prepared to pay for it. This is not the currently favored approach for m...| Posts on TrozWare
Sets are the forgotten collection type in many languages, including Swift. I think most developers use Arrays without really considering the advantages of using a Set but they have some amazingly useful features that should make them a part of any progammer’s toolkit. If you want to follow along with a playground, you can download it here. What is a Set? # A Set is an un-ordered collection of unique items. That’s it - nothing more than that. So it is very similar to an Array, but it is no...| Posts on TrozWare
As the Apple Watch hits its first birthday, there seems to be in increasing number of bloggers complaining about it. One (which I refuse to link to) titled “My Year of Hell With the Apple Watch”. I think the article has since been re-published with a slightly less inflammatory title, but really! Did somebody rivet the watch to his wrist? If it was so awful, why not just stop using it? I am a watch nerd and have always loved watches and having one on me. I liked watches with features and e...| Posts on TrozWare
I ran into an unusual problem when testing my latest app: “What Is My Speed?”. It is now available from the iTunes App Store, but getting there was a struggle. TL;DR Xcode is terrible at renaming projects, so it is a really good idea to have worked out your app’s name before starting. I would even recommend creating an app ID in your Apple Developer account and registering the app name in iTunes Connect. Only once you get to iTunes Connect will the name be checked for uniqueness. Search...| Posts on TrozWare
Over the past few months, we have done two long road trips: one approximately 4,000 km and the other about 1,800 km. These gave us the chance to try out various apps for navigation and travel information. We live in Queensland, Australia and some of these comments may be country-specific. --- Navigation # The basic navigation came down to three apps: Apple Maps Google Maps Metroview (Australia and New Zealand only) Each has their strengths and weaknesses: Apple Maps is by far the most beautif...| Posts on TrozWare
One of the big debates among Swift developers is when to use structs and when to use classes. Classes are the building blocks of object-oriented programming but structs as provided by Swift are newly powerful. Structs have been around in C-based languages for a long time, but Swift has made them more powerful and given them more features so that they are almost indistinguishable from classes. So what are the differences and which one should you use? --- Where they are the same? # both can def...| Posts on TrozWare
Today I plan to discuss optionals since they were a feature of Swift that I found difficult to grasp at first. What is an optional in Swift? # An optional is a variable of a specified type that can also be nil. Why does this matter? # In Objective-C, any object type could be nil. If you declared a variable like this: NSString *myString; then myString was set to nil by default. But this could cause issues, especially as Objective-C does not complain if you send a message to nil. This could lea...| Posts on TrozWare
Loops are a fundamental building block of any program. Doing repetitive tasks fast and accurately is what computers are really good at and what we humans get very bored doing. Swift offers several different ways to perform loops, but today we are going to concentrate on for-loops. The most basic form of loop is the for-in loop. There are two ways this can be used: looping over the numbers in a range or looping over the elements in an array or dictionary. Firstly, the range: for x in0 ..<5 { p...| Posts on TrozWare
One of the nice things about Swift is how clean your code looks. A lot of the weird characters that pepper the code of other languages has been eliminated: No more semi-colons, asterisks etc. But then you are reading somebody else’s code and you find these angle brackets all over the place and they don’t seem to make sense. What does this mean? funcmid<T: Comparable>(array: [T]) -> T It looks like it is a function to find the middle element in an array, but what is <T: Comparable> or [T] ...| Posts on TrozWare
I was driving through the town of Singleton the other day and of course, it got me thinking about using singletons in my apps. Singletons were a commonly used pattern in Objective-C programming and appear in many of Apple’s own APIs, but seem to be increasingly frowned upon in the Swift world. So what is a singleton? # A singleton is a class that only expects to have a single instance. Think of it as a global instance of a class. In some cases this makes perfect sense if there can only ever...| Posts on TrozWare
Do not use !. Use let, not var. Allow the compiler to infer types. Read on for more details… 1. Do not use ! # Swift uses optionals for values that can be nil. To use an optional value, you need to “un-wrap” it first, which means getting the actual value out, assuming that the value exists and the optional is not actually nil. Optionals are the subject of a complete post by themselves, but for now, I will just say this: When you use ! you are promising the compiler that you will make su...| Posts on TrozWare
While not strictly a part of my Learning Swift series, today I thought I would discuss some of the ways to configure and use Xcode to be a more productive and comfortable programmer. 1. Editor color themes and fonts: # Step through the supplied themes and find the best one for you. Then click the ‘+’ button at the bottom of the list and duplicate the selected theme. Now you can tweak it to suit you. Each text category can have its own font and size, but you can make multiple selections in...| Posts on TrozWare
The first thing to do is to download the latest version of Apple’s Swift Programming Language book from the iBooks Store. You can just read this book, especially the first section: “A Swift Tour”, but you will get more out of it if you follow along with the playground. There is a link to download the playground from the book which you can use directly if you are reading using iBooks on the Mac. If you are not, here is the download link. You will also need to install Xcode from the Mac A...| Posts on TrozWare
Firstly, I can give you the technical answer, as published by Apple: Swift is a new programming language for iOS, OS X, watchOS, and tvOS apps that builds on the best of C and Objective-C, without the constraints of C compatibility. Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible, and more fun. Swift’s clean slate, backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to reimagine how software develo...| Posts on TrozWare
Welcome to Learning Swift. # This is the first post in what I hope will be an extensive series dealing with the Swift language. Here are some of the questions I hope to answer: Should I learn Swift? Why? Why is Swift so great? How should I start learning Swift? I already know Objective-C - how do I convert? After that, I am planning a series of posts discussing the major differences of Swift from the view point of an Objective-C programmer and the aspects of Swift that I found difficult to gr...| Posts on TrozWare
It has come to my attention that there are two possible issues with Icon Builder 3.0.1 when using icons created for an Apple Watch app. Once of them is something I can fix and the other appears to be a bug in Xcode 7.2 --- Update: Version 3.2 of Icon Builder is now available in the Mac App Store. This removes the alpha channel from icons for a watch app. --- The first problem is that iTines Connect now requires that the icons for an Apple Watch app include no alpha channel. This is becoming a...| Posts on TrozWare
19th Hole for iPhone and Apple Watch version 3 is now available through the iTunes App Store. This version is a complete re-write to accommodate the changes in iOS 9 and watchOS2. The major changes are to do with the way the iPhone and the Watch communicate. In watchOS1, all the brains of the app had to live in the iPhone, meaning that every single interaction on the Watch had to be referred back to the iPhone for processing and the result sent back to the Watch for display. This lead to comm...| Posts on TrozWare
I realise that every one has written one of these posts, but given that everyone looks for and notices different things, I think it is still valid. My first impression was “Why does it come in such a large box?”. The courier delivered two boxes - my 38mm Apple Watch Sport and Tim’s 42mm Apple Watch Sport. They both came in long boxes, with the 42mm box significantly longer. And both boxes were heavy! --- Un-boxing: # Opening them was a typical Apple experience: pull the tag to open the ...| Posts on TrozWare
Time In Words for iOS started off as a fun gimmick, emulating the Qlocktwo type of time display where the relevant words are highlighted in some way to spell out the time as a sentence. This very quickly evolved into what I hoped would be more useful app, still showing the original display, but also providing the current time & date as complete sentences. Then I added time conversions and discovered the real power and utility of writing out times as words. When it comes to converting times, I...| Posts on TrozWare
As described in a previous post, about 9 days ago I submitted my first Apple Watch app for review. The app was an extension of my golf scoring app: The 19th Hole. I expected that App Store review times would go up dramatically once Apple had allowed developers to submit watch apps, but this proved to be incorrect. Three days after submission, the app was marked as “In Review”. This seemed to happen last thing on a Saturday, so there was no further action for two days, at which point the a...| Posts on TrozWare
I have just submitted my first Apple Watch app to the iTunes App Store. This is a scary thing to do, since I have never seen, touched or used an Apple Watch and all I had to go on was the Simulator that Apple supplies with Xcode. At the moment, Apple has only made a limited set of Apple Watch features available to developers, and all Apple Watch apps come tethered to an iOS app - presumably this will mainly be iPhone apps, but I wonder will we be able to connect Apple Watches to iPads? Anyway...| Posts on TrozWare
Man Reader 2 is now available from the Mac App Store.| troz.net
I've written another book for macOS developers.| troz.net
Updated and new links| troz.net
Not much action on the site lately as I work on other projects. But I have finally got around to adding a search option to the site.| troz.net
Crossfix is an iPhone app for helping solve anagrams in crosswords, particularly cryptic crosswords.| troz.net
Adapting apps and web site to support Mojave's dark mode.| troz.net
Upgrading Mac apps for macOS Mojave.| troz.net
Time in Words for iOS has been renamed to Wordl Time In Words and updated to version 5.0| troz.net
TL;DR: I don’t track you either on my web site or through my apps. If you want to contact me, please do so but I will not initiate any contacts.| troz.net
I am looking for beta testers for my latest Mac app: Work. Work is a project organizer app for developers, designers, students or any professional who works with multiple projects involving files & folders, web pages, email addresses and lists of tasks. Click the link above for more information and help for getting started. Work requires macOS 10.12 or OS X 10.11. If you would like to test this app, please contact me, giving details of your Mac and operating system.| troz.net
A quick update to Man Reader to version 1.8 is now available through the Mac App Store. The main reason for this version was that Man Reader was not previously detecting man pages installed by third-party IDEs in the Applications folder. There was also an issue with Man Reader failing to display the text of the previously selected man page on app launch. More complete search for man pages, including in third-party IDEs.| troz.net
Man Reader has just been updated to version 1.7 and is available through the Mac App Store. The main reason for this update was to make the app work well with macOS Sierra, as I found that version 1.6 was sometimes crashing on launch. While doing this, the update was rejected by the App Store reviewers because it crashed on OS X 10.10. Since I no longer have a Mac running 10.| troz.net
I have recently started what I hope will be a weekly podcast with my friend and colleague, Jerry Daniels. Each podcast will be about 30 minutes in length. We will discuss Macs, iPhones, iPads, macOS, iOS, programming and anything tech-related that we find interesting. I hope you will find it entertaining and informative, so please join us. We are using ZCast which has an iPhone app that makes it super easy to get together and record our chats.| troz.net
Dice Pass 1.1 is now available from the Mac App Store. What does Dice Pass do? # Dice Pass is a utility to app to generate random passphrases based on the Diceware system. Diceware uses a table of pre-defined words, each assigned a 5 digit code number containing the digits 1 to 6. The official way to generate a phrase is to roll 5 dice for each word you want in your passphrase and then consult the words table to find the matching word.| troz.net
Icon Builder is a Mac app that takes a single image file and creates all the different image sizes that you need to make a set of icons for your app: Mac, iPhone, iPad, iOS Universal or Apple Watch. Version 4, released 16 September 2016 is available through the Mac App Store. What’s New in Version 4: # Added support for iMessage apps and Sticker Pack apps. Added support for creating Mac .| troz.net
With the release of iOS 10 and the need to update iOS apps to suit, I have decided it is time to retire some of my lesser-performing apps as it is not worth the effort required to maintain them. At the moment, the following iOS apps are no longer available: A Knight’s Move Dice Pass Pic-a-POD Quick Score - Tennis For the first three listed there, the Mac versions are still available:| troz.net
Man Reader has been updated to version 1.6 with the permissions needed for finding all available man pages and a fix for search terms being over-written after a background update. Man Reader 1.6 is now available through the Mac App Store. Change Log: # Permissions fix when searching for available man pages. Fixed error with new search term being over-written. Sand-boxed version now works just as well as the non-sand-boxed so please switch back to this version.| troz.net
I recently got an email from someone who had purchased Dice Pass for Mac from the Mac App Store but had been unable to get it to run. This person was using OS X 10.9.3. I checked the App Store specifications and it showed that 10.9 was the minimum system requirement, so it should have worked. But going back to my Xcode project, I found that it was set to a minimum of OS X 10.| troz.net
One of the problems with using 19th Hole on the Apple Watch is making the app show every time you raise your wrist. My solution to this was to go into Settings (either on my iPhone through the Watch app, or directly on the watch) and change it to “Resume Last Activity” on wrist raise. This worked fine but as I usually prefer the watch face to show on wrist raise, I had to keep setting and re-setting this which was a pain.| troz.net
Icon Builder 3.2 is now available from the Mac App Store. Icons for Apple Watch apps now have their alpha channel removed. Tidier folder structure for related files (iTunes Artwork files and Read Me). Updated to work with Xcode 7’s Assets.xcassets folders. Creates iPad Pro icons for Xcode 7.2 or later. Fix for Retina Macs creating double-sized images.| troz.net
I have started a new Twitter account so that I can provide rapid support to users of my apps. Please contact me @trozware if you have any questions, suggestions, bug reports or would just like to chat. I will also be using this account to promote my new Learning Swift series.| troz.net
Man Reader has been updated to version 1.5 with a major improvement in the way it looks for available man pages. Man Reader 1.5 is now available through the Mac App Store. Change Log: # Much improved searching for available man pages. Sand-boxed version now works just as well as the non-sand-boxed. The main feature of this version is that it solves the previous problems with the App Store version and sand-boxing.| troz.net
We live in a world of passwords and passphrases and there is a constant struggle between having a secure and a memorable password. As a result, many of us re-use passwords even though we know this is a bad idea. XKCD had a wonderful comic that illustrated the theory of using a passphrase composed of words that are easy to remember but with a combination that made the passphrase very hard to guess.| troz.net
When I converted my site to Jekyll & GitHub, one of the things I left behind was a collection of LiveCode (Revolution) stacks. For many years I was active in the Revolution community before going in other directions and over that time, I built up a small library of stacks that I released into the public domain. LiveCode is a cross-platform rapid development environment. There is an open source community edition available for anyone wishing to get started.| troz.net
So why an announcement for such a minor upgrade? Version 3.0 got no announcement because it was not the release I wanted. Having downloaded the Xcode 6.2 & 6.3 betas, I had worked out what icons were needed to a WatchKit app. This, combined with several other changes, made me bump the version number to 3.0. Sadly, Apple rejected the update because it referred to pre-release products. So I pulled all mentions of WatchKit out of the interface and meta data and got 3.| troz.net
Various ways to pass data around your SwiftUI apps, after WWDC 2023.| troz.net
I've written a book!| troz.net