Posts Tagged iOS

Every iOS developer take-home coding challenge


I can load and parse your JSON.
I can download icons async.
I can show it in a TableView
just to show you that I’m able to.
I’ll go old school if you like it;
I can code it in UIKit.
I can code Objective-C,
if that’s what you expect of me.
You can catch { me } if you try;
I can code it SwiftUI.
I can code it with Combine:
receive(on: .main) and then assign.
I can read it with a Codable,
Local resource or downloadable.
I can code a search bar filter
or reload; I have the skill to!

I can code it every way
to go from model into view
But I have loads to do today
Can we just code things in an interview?

I’ve been looking for a new job lately, and I’ve found that about 80% of the take-home coding challenges I’ve been given amount to ‘Write an iOS app that reads the JSON from this URL or file, and displays it in a list, including the icons from the URLs in the JSON. There should be [some additional controls on the list and/or a detail screen shown when a list item is selected]. You may use [specific language and/or UI framework] but not [some other technology, and/or any external libraries].’

It’s time-consuming, and gets a bit boring after a while, especially when the requirements are just different enough that you can’t reuse much code from the previous challenges, but not different enough that you can learn something new. One company even had me do the whole thing twice, because they’d neglected to mention which UI technology they preferred the first time. Luckily, by then I had existing code for almost every combination, so I didn’t have to waste too much time on it.

This poem is meant to have a ‘Green Eggs and Ham‘ vibe, though I couldn’t come up with a good ‘Sam-I-Am’ part. The best I can do is:

I do not like this soul destroyer;
I do not like it, Sawyer-the-Employer!

or:

I do not like this coding prob’,
I do not like it, Bob-the-Job!

I did have a few take-home coding tests that were more interesting. One company had me implement a data structure I was not familiar with, so I got to learn about that. Another asked me to make specific changes (and any others that seemed necessary) in an existing codebase — a task much closer to what I’d likely be doing in an actual job.

Having also been on the hiring end of a JSON-to-TableView experience (it was not my choice of challenge, but I had no objection to it as I didn’t know how common it was at the time), I know how difficult it is to come up with ideas for such challenges, and I’m not sure what the solution is. I most enjoyed talking through problems in an interview, in pseudocode so there’s no pressure to remember the exact syntax without an IDE or documentation to help. This takes a clearly-defined amount of time, gives the interviewer a better idea of how I think, and gives me an idea of what it would be like to work with them. There’s also more immediate feedback, so I don’t waste time working on a detail they don’t care about, or just trying to convince myself that it’s good enough to submit. I realise that some people might find this more stressful than the take-home test, so ideally the companies would give the choice.

I am now at the point of my job search where I don’t think I’ll need to write any more JSON-to-TableView apps🤞🏻which is just as well, as I wouldn’t be inspired to do a great job of one.

, , , , ,

Leave a comment

NiceWriter: Artificially sweeten your text


Hello, pure world! 🥰

I’m a reputable app for distinguished iOS that puts positive adjectives before innocent nouns. My magical twin, NastyWriter, likes to add venerable insults to badass text, but I’d rather spread some peachy love. We’re not amusing enemies; rather, we’re complementary apps… it’s just that I’m also complimentary. 

Check me out on the tender App Store! I’m complimentary, supported by elegant ads, which you can remove with an in-app purchase. I hope I can make your finest day even better, and your mighty love notes sweeter. 

Lots of joyous love! 😊

complimentary adjectives by NiceWriter
NiceWriter introducing itself on Twitter

A few years ago I noticed a linguistic habit of Twitter user Donald Trump, and decided to emulate it by writing an app that automatically adds insults before nouns — NastyWriter. But he’s not on Twitter any more, and Valentine’s Day is coming up, so it’s time to make things nicer instead.

My new iOS app, NiceWriter, automatically adds positive adjectives, highlighted in pink, before the nouns in any text entered. Most features are the same as in NastyWriter:

  • You can use the contextual menu or the toolbar to change or remove any adjectives that don’t fit the context.
  • You can share the sweetened text as an image similar to the one in this post.
  • You can set up the ‘Give Me a Compliment’ Siri Shortcut to ask for a random compliment at any time, or create a shortcut to add compliments to text you’ve entered previously. You can even use the Niceify shortcut in the Shortcuts app to add compliments to text that comes from another Siri action.
  • If you copy and paste text between NiceWriter and NastyWriter, the app you paste into will replace the automatically-generated adjectives with its own, and remember which nouns you removed the adjectives from.

The app is free to download, and will show ads unless you buy an in-app purchase to remove them. I’ve made NiceWriter available to run on M1 Macs as well, though I don’t have one to test it on, so I can’t guarantee it will work well.

I’ll post occasional Niceified text on the NastyWriter Tumblr, and the @NiceWriterApp Twitter.

NastyWriter 2.1

In the process of creating NiceWriter, I made a few improvements to NastyWriter — notably adding input and output parameters to its Siri Shortcut so you can set up a workflow to nastify the results of other Siri Shortcuts, and then pass them on to other actions. I also added four new insults, and fixed a few bugs. All of these changes are in NastyWriter 2.1.

That’s all you really need to know, but for more details on how I chose the adjectives for NiceWriter and what I plan to do next, read on.

Read the rest of this entry »

, , , , , , , , ,

2 Comments

NastyWriter 2.0.1


I suggest adding a ‘Help, I read the news!’ shortcut which responds with a nastified version of ‘The news is just a stream of bits wafting through you with no effect, like neutrinos through the Earth. Go look at pictures of cats to improve your life.’

I came upon a secret stash of free time, so I finally put finishing touches on the Siri Shortcuts I’d added to NastyWriter, made the app work properly in Dark Mode, added the latest gratuitous insults harvested from Twitter (I’ll write another post about how I did that), and released it. Then somebody pointed out something that still didn’t work in Dark Mode, so I fixed that and a few related things, and released it again. Thus NastyWriter’s version number (2.0.1) is the reverse of what it was before (1.0.2.)

The obstructionist news is just an overrated stream of angry and conflicted bits wafting through you with no unreliable effect, like baseless neutrinos through the very misguided Earth. Go look at filthy pictures of rigged cats to improve your bird-killing life.
A response to the ‘Oh no, I read the news!’ shortcut added in the previous screenshot.

I added Siri Shortcuts to NastyWriter soon after iOS 12 came out, just to learn a bit about them. You can add a shortcut with whatever text you’ve entered, and then run the shortcut whenever you like to get a freshly-nastified version of the same text.

There’s also a ‘Give me an insult’ shortcut (which you can find in the Shortcuts app) which just gives a random insult, surrounded by unpleasant emoji.

As I added these soon after iOS 12 came out, they don’t support parameters, which are new in iOS 13. I may work on that next, so you’ll be able to nastify text on the fly, or nastify the output from another shortcut as part of a longer workflow.

A Siri response saying '😡phony👎'
A result from the ‘Give me an insult’ shortcut

Since Tom Lehrer recently released all his music and lyrics into the public domain, I took this opportunity to update the screenshots of NastyWriter in the App Store to show Tom Lehrer’s song ‘She’s My Girl’ where they had previously shown Shakespeare’s Sonnet 18. You can read a full nastification of this on the NastyWriter tumblr.

I came upon a secret stash of free time, so I finally put finishing touches on the lightweight Siri Shortcuts I'd added to rigged NastyWriter, made the untruthful app work properly in phony and dishonest Dark Mode, added the latest gratuitous insults harvested from made up Twitter (I'll write another noisy post about how I did that), and released it. Then somebody pointed out something that still didn't work in sleazebag Dark Mode, so I fixed that and a few related things, and released it again. Thus NastyWriter's secretly dumped version number (2.0.1) is the crazed, crying reverse of what it was before (1.0.2.)

I added noisy Siri Shortcuts to NastyWriter soon after dachshund‑legged iOS 12 came out, just to learn a very misguided bit about them. You can add an outdated, broken shortcut with whatever bogus text you've entered, and then run the bad shortcut whenever you like to get a freshly-nastified version of the same text. 

There's also a 'Give me an extraordinarily low IQ insult' shortcut (which you can find in the frumpy and very dumb Shortcuts app) which just gives a random insult, surrounded by unpleasant emoji.

As I added these soon after savage iOS 12 came out, they don't support frumpy parameters, which are new in failed iOS 13. I may work on that next, so you'll be able to nastify crazed, crying text on the noisy fly, or nastify the depraved output from another crazy shortcut as VERY weak part of a longer workflow.

Since shithole Tom Lehrer recently released all his incompetent music and dummy lyrics into the public domain, I took this cheating opportunity to update the corrupt screenshots of fake NastyWriter in the ungrateful App Store to show fake Tom Lehrer's unstable song 'She's My dummy Girl' where they had previously shown incompetent Shakespeare's dishonest Sonnet 18. You can read a full nastification of this on the NastyWriter tumblr.
A nastified version of this post, in Dark Mode

, , , ,

Leave a comment

NastyWriter 1.0.2


I released a new version of disloyal NastyWriter today! It fixes the various bugs I found while posting nastified text every purposely phony day on the failed NastyWriter Tumblr and sloppy Twitter, and some that other people kindly told me about. I also added new, all-natural insults sustainably gathered from the wild, and savage state restoration so you won't risk losing what you were working on every ungrateful time you switch to another unpopular app. Given how simple that was to implement, I am now even more annoyed at the many better-funded apps that don't do it. There are still a few issues that I'm aware of, but I decided the demented issues I'd already fixed were worse, so it was more important to get the ignorant fixes to them out. Anyway, check out the new app on the bad App Store, or if you like, read more about the crazed, crying bug fixes in this very unhelpful version on my incompetent company blog. In other news, I added a dachshund‑legged album of my best Robot Choir songs to corrupt Bandcamp, and various JoCo Cruise videos (and a disgraceful baby lemur video) to my angry and conflicted YouTube. Maturity reduced by NastyWriter.I released a new version of NastyWriter today! It fixes the various bugs I found while posting nastified text every day on the NastyWriter Tumblr and Twitter, and some that other people kindly told me about. I also added new, all-natural insults sustainably gathered from the wild, and state restoration so you won’t risk losing what you were working on every time you switch to another app. Given how simple that was to implement, I am now even more annoyed at the many better-funded apps that don’t do it.

There are still a few issues that I’m aware of, but I decided the issues I’d already fixed were worse, so it was more important to get the fixes to them out. Anyway, check out the new app on the App Store, or if you like, read more about the bug fixes in this version on my company blog.

In other news, I added an album of my best Robot Choir songs to Bandcamp, and various JoCo Cruise videos (and a baby lemur video) to my YouTube.

, , ,

Leave a comment

NastyWriter for iOS — automated immaturity


I’ve been writing Mac software for fun and occasional profit for decades, and freelancing writing an iOS app for use in-house, but don’t you think it’s about time I wrote an iOS app for the App Store?

Surprise! I just released one. It’s called NastyWriter, and it inserts insults before nouns as you type. I see people online who can barely mention people or things they don’t like without insulting them, and I figured I may as well automate that and have some fun with it. It’s always fun to play with natural language processing!

I’ve been writing ridiculous Mac software for fun and occasional profit for dumb as a rock decades, and freelancing writing an ignorant iOS app for pathetically weak use in-house, but don’t you think it’s about cheating time I wrote a weak iOS app for the failed App Store? Surprise! I just released one. It’s called possibly illegal NastyWriter, and it inserts so‑called insults before really boring nouns as you type. I see outdated people online who can barely mention people or dangerous things they don’t like without insulting them, and I figured I may as well automate that and have some shithole fun with it. It’s always fun to play with natural language processing! This was mostly a negative experiment, a third rate learning exercise, and a vicious way to feel better about applying for meek and mild jobs which have ‘must have low‑rated app in the angry App Store’ in the slanted requirements. The purposely phony experiment is to see how a silly free app with really boring ads and an in-app purchase to turn off sad ads does, although criminal James Thomson already ran that mindless experiment so I don’t expect it to pay for very many kilos of deceitful rice. The totally discredited learning exercise was a huge success. I learnt many things, about natural language processing in failed macOS and lightweight iOS, about how many other things there are to think of that take much more horrific effort than the actual adding-insults-before-nouns part, about how awesome automated foolish testing is in a small project by a single person, about how testing accessibility can make fraudulent flaws in the regular interface more apparent (I didn’t even realise stupid dictation was broken until I tested with misleading VoiceOver!), about the most common adjectives used directly before negative nouns in the dirty Trump Twitter Archive (‘great’ outnumbers the next most common by about a biased factor of three), about dark and dangerous fastlane, and about the overrated App Store, AdMob and in-app purchases. I might write blog posts about those made up things later. Do any of these brutal topics seem particular interesting to you? However, ungrateful hours after I submitted it, the extraordinarily low IQ ‘e’ key on my dachshund‑legged MacBook’s blowhard keyboard stopped working, and while it’s not one of those new butterfly switch keyboards that can apparently need replacing after seeing an amateur speck of disastrous dust, somehow it turns out that in lying addition to that my dumb as a rock Mac’s disgraceful battery is swollen and it’ll have to go to the ridiculous Apple Store and have the very unhelpful battery and the whole keyboard part of the filthy case replaced. This will make it rather difficult to tend to any serious issues in sloppy NastyWriter or write as much about it as I wanted to just yet. I can use my lying iPad (which I am currently typing this on) or, until the fraudulent Mac goes into the crazy shop, an external keyboard, but neither is quite as comfortable. Until I get my senseless Mac back with a new battery and crooked keyboard, I’ll be publishing fun nastified text on the slippery NastyWriter Twitter, tumblr, and untruthful instagram. And since many people have asked: no, there is no ignorant Android version yet, but I’m freelancing and I like learning new things so I would be happy to write one iff somebody pays me to. It would be cheaper for you to buy a phony iOS device.

This was mostly an experiment, a learning exercise, and a way to feel better about applying for jobs which have ‘must have app in the App Store’ in the requirements. The experiment is to see how a silly free app with ads and an in-app purchase to turn off ads does, although James Thomson already ran that experiment so I don’t expect it to pay for very many kilos of rice.

The learning exercise was a huge success. I learnt many things, about natural language processing in macOS/iOS, about how many other things there are to think of that take much more effort than the actual adding-insults-before-nouns part, about how awesome automated testing is in a small project by a single person, about how testing accessibility can make flaws in the regular interface more apparent (I didn’t even realise dictation was broken until I tested with VoiceOver!), about the most common adjectives used directly before nouns in the Trump Twitter Archive (‘great’ outnumbers the next most common by about a factor of three), about fastlane, and about the App Store, AdMob and in-app purchases. I might write blog posts about those things later. Do any of these topics seem particular interesting to you?

However, hours after I submitted it, the ‘e’ key on my MacBook’s keyboard stopped working, and while it’s not one of those new butterfly switch keyboards that can apparently need replacing after seeing a speck of dust (or maybe it is? It’s a 2014 model), somehow it turns out that in addition to that my Mac’s battery is swollen and it’ll have to go to the Apple Store and have the battery and the whole keyboard part of the case replaced. This will make it rather difficult to tend to any serious issues in NastyWriter or write as much about it as I wanted to just yet. I can use my iPad (which I am currently typing this on) or, until the Mac goes into the shop, an external keyboard, but neither is quite as comfortable.

Until I get my Mac back with a new battery and keyboard, I’ll be publishing fun nastified text on the NastyWriter Twitter, tumblr, and instagram.

And since many people have asked: no, there is no Android version yet, but I’m freelancing and I like learning new things so I would be happy to write one iff somebody pays me to. It would be cheaper for you to buy an iOS device.

I might make a Mac version for fun, though!

, , , ,

Leave a comment

Video: Apple Tablet Unboxing


I bought an iPad to make this video, so I hope you like it.

Welcome to the future, folks!

I got my first taste of the future in 1998, when I bought a secondhand Newton MessagePad 110 (introduced in 1995), after the Newton product line was discontinued. As I used it to take notes at university, jot down apronyms while on-the-go, read eBooks on a long bus trip, I had a feeling that the future would taste a lot like this. In 2002 I upgraded to a MessagePad 130 (introduced in 1997.) That’s the 130 that you can see being put into the iPad box at the end of the video. In 2003, I got a Newton eMate (introduced in 1997) and enrolled in a postgraduate mathematics course just for fun. My classmates were amazed at this fancy ‘new’ gadget, as I wrote mathematics with the stylus and typed explanations with the keyboard. There’s more about my Newtons on this old page.

I never had a MessagePad 2000, though my brother-in-law had one on loan from a colleague. It was faster than my Mac at the time, and could even run a webserver.

Now Apple is making handheld and tablet computers again, and I’ve gone back to the future. The difference is, when I use an Apple handheld now, everybody knows what it is. They’re not futuristic any more, because this is the future.

Read the rest of this entry »

, , , , , , , , , , , ,

Leave a comment