App Store Meta

Finish coding the app and release it to the app store, right? WRONG.

Now I gotta worry about screenshots. Which aren’t working right now. I had a fastlane script to create screenshots, but it’s not working anymore and I don’t know why. So I gotta fix that.

Oh yeah, I have to make sure I have good keywords. I have a marketing budget of zilch, so I gotta make those keywords count.

And the app description. Make sure it’s detailed, stuffed with keywords, but not annoyingly so.

Oh, and should I change the name of the app? “iBorrow (IOU)” sounds so 2010.

App website. I got a domain for it, but it uses the app’s old name. Do I use the old name and set up a site? Create a new name, requiring me find a new domain name, which is probably taken? Then I have to actually create the website and put content on it.

Oh bother.

Removing IAP for First Release

I am SO paranoid about the IAP in this app. In case you don’t know, IAP stands for “in app purchases”, whether it be one-time purchases or subscriptions. IAP is hard to get right on iOS, and I’ve been paranoid that I’ll release iBorrow and the IAP stuff won’t work and people will be upset that they’ve made a purchase and don’t see the Premium features. Or that people will get Premium features without paying. Or that the moon will fall from the sky and land the user when they touch the “Subscriptions” button.

So for my own sanity, I think I’ll release a version with the IAP and Premium features first. The premium features were no big deal anyway, and I think I might need to add more to make it worth the while. Maybe. Still undecided on that, because I can just let the user decide for him- or herself if it’s worth it. Either way, the cool thing is, if I decide to delay IAP and release the app without it, I don’t need to make that decision today.

So I’ve released a new build of my app that doesn’t have the IAP to TestFlight, and friends and family are checking it out. If all goes well, I’ll be releasing it to the app store soon. Which, well, kinda brings up other issues. See my next post.

Final Strokes

I’m getting really close to finishing the first version of the redesigned iBorrow. There are so many small little bugs, it’s amazing. Almost all of them are in the People view. See the image for a quick reminder of what the People view looks like.

The problem with the People view is that it’s displaying two sets of data at once. It’s displaying a list of people, but it’s also displaying the borrow items each person has. On top of that, the people and items need to be filtered by the filter preferences the user can set in the bottom toolbar. On top of that, a person’s view expands and contracts, and only one can be expanded at a time.

So this is causing me more than a few little bugs to work out, but I think I have all (the majority???) of them flattened.

I’m also adding a ton of things that should be in here, like a log system, analytics, credits on the Settings view, a privacy policy, etc. It’s getting close!

Settings and Debug Mode

One thing I did in my app is record some of the user actions, and if they do a certain particular sequence of actions, then enable a debug mode. This is really handy and I highly recommend it. I’ve used it in the past to allow me to email myself a log of everything the user has done in the app, which helps me debug problems.

In iBorrow, I only use it for one purpose. I add a “Populate Fake Data” field to the Settings view. This gives me a data set to work from instead of having an empty app. You can see this data in screenshots on other posts here.

Eventually I plan to add other things, but for now it’s pretty simple. I wonder how many other apps have a hidden mode like this that I could uncover if I only knew the secret?

Empty State View

I’ve been testing my app with fake data for a long time. I have a function that I call, and it creates some people and items, populated with nice pictures from unsplash, and bingo presto I can work with them in my app.

(Nice thing about this data is that I’ll be using it to create screenshots for the app store.)

Which made making an empty view not so much of a priority. But getting down to the short strokes, I needed to show the user something when the app first started, because a blank screen just won’t cut it.

(Years ago I would have been, like, whatever.)

I didn’t want to spend a lot of time on this, so I decided to try DZNEmptyDataSet. It’s a framework for just this purpose – to create an special view for when there’s no data. It’s handy because it integrates pretty quickly. I still needed to do some work, like setting up the NSAttributedStrings that were needed. But pretty soon I got it up and running, as you can see in the first screenshot.

(And I have to say it looks pretty nice!)

But I ran into problems rather quickly. Two really. One, it would flicker sometimes as it was showing up. Which did not look good at all. Also, the three lines of text were not aligned properly in the middle of the view. Sometimes. Other times it did align properly. It was very frustrating and at that point I decided to roll my own solution.

(I don’t like third party library dependencies anyway.)

Rolling my own solution using UITableView’s backgroundView actually took very little time. About the same amount of time as integrating DZNEmptyDataSet in the first place. Yikes. What took a lot more time was having it be context sensitive to whether there was no data at all, or if the data had just been filtered away by the user’s filter choices. (It was a little tricky because that information wasn’t anywhere near the same level in the code as was the empty view code.)

(And this was work I would have had to do anyway with DZNEmptyDataSet.)

But I got something working, so here are two screenshots of my own empty view, without using DZNEmptyDataSet. I could re-use my code for creating the NSAttributedStrings, so that was handy. Also, you can see that I changed the text a little. I wish I had a copywriter in the family, I’m still not completely happy with it.

Designing My Red/Gold Theme

I’m in the middle of designing the red/gold theme for my app, and I’m not happy with the results so far. Here are two variations that I’ve thought of, and I don’t think either is good enough.

Variation One:

Variation Two:

Both of them look garish. I think I need to change the gold colour to look more gold as well.

[Update: In the end I went with neither of them and used a third alternative. You can see it a little in my next post.]

Added a Dark Theme

I know I said I’d talk about my designs for the borrow view next, but I just got the dark theme working and I think it looks great, so I wanted to post pictures. It’s based off the Apple Watch app. Actually, the colours are a direct ripoff, so I’ll be tweaking them to make them my own. But I wanted to use something as a starting point, just to get things working.

Default theme:

   

New Dark theme:

   

New Series! Reviving an Old App

When I was first learning iOS development I created a couple apps. One was to track what I lent and borrowed to and from people. But I let the app languish and it’s no longer on the app store. Last summer when looking for a new job (after the company I worked for went bankrupt) it would have been really handy to have an app of my own on the app store, so I decided to revive some apps I built.

In this series of posts you’ll find some thoughts about my development process.

The first one to get the resuscitation treatment is my borrowing app. In case you’re curious, here’s what the old app looked like. The old app was written when I was new to writing iOS apps. So even though I’m totally rewriting the app from scratch, I still have to live with the CoreData format I chose at the time. Which, well, wasn’t the best.

But I want to resurrect the old app, so I’m going to have to live with that and upgrade the CoreData database to a better format in the new app. That’ll require a little bit of legacy support.

One thing I’m really trying to do with the new app is make it as nice to use and look at as possible. At the same time I don’t want to go overboard with design and go too far. I’m aiming for something like Apple themselves would make, with some touches of my own. (I want to add themes, which is not something Apple cares for.)

I’ve already been working on the app, and you can see a screenshot here to the right. (The images are all from unsplash.com.) You can filter by things you’ve borrowed, lent, gotten back, and/or returned.

Across the bottom you can choose what kind of view you want to see. The screenshot shows the grid view, but there’s also a list and people view. (The people view doesn’t have the right icon yet.)

I’m really struggling to come up with a detail view for the borrow / lend. Maybe I’ll do a post about that eventually.