Archive for January, 2015

Account Tracker CSV file tutorial

January 31, 2015 Comments off

aticon57 atficon57 Account Tracker supports importing transactions from a CSV file, as documented here. The reason the format is relatively strict is because I only really expect people to import transactions once, and that it is quick and easy to convert CSV files in a spreadsheet like Excel or Numbers.

For those of you not familiar with spreadsheets, I thought I’d write this quick guide/tutorial about converting the export format from a sample bank (Nationwide in the UK) to Account Tracker format.

First of all, here is how Nationwide exports transactions …

Account Name:,Flexaccount ****12345
Account Balance:,£0.00
Available Balance: £0.00

Date,Transaction type,Description,Paid out,Paid in,Balance
29-Dec-14,Transfer to,ABC,£1.23,,£0.00

If you open your exported CSV file with Excel (or another spreadsheet application) you will see the data in table format, with columns (A to F) and rows (1-6 or more, depending on the number of transactions).

Lets get rid of the redundant rows and columns first. Click on the number 1 to the left of the first row and drag down to row 5. This will highlight the first 5 rows. Right click and select Delete. Select the sixth column (F) and delete that in the same way. Finally select the second column (B) and delete that. You will be left with one row per transaction, with four columns (date, description/details, paid out and paid in).

To fix the date format in column A, simply select the whole column and choose Format then Cells. Select Custom and enter dd/mm/yyyy in the Type box.

To convert the two separate columns for paid in and paid out into one, select cell E1 and enter the formula =D1-C1. Select cell E1 again, copy it (control c), select all the remaining cells in that column (one per row) and paste (control v). You now have a single column with amounts. To convert these cells from formulas to values, select the whole column, copy (control c), then choose Edit then Paste Special then Values. To get rid of the currency symbols, select the column and choose Format then Cells. Choose Number, set the right number of decimal places (2), don’t use a 1000 separator and keep the – sign for negative numbers. You can now delete columns C and D as they are no longer needed.

Finally you need to add in the five missing columns. First of all select column A and choose Insert then Column. Enter your account name from the app in cell A1, then double click on the little box at the bottom right of the cell. This will autofill the account name for each row. Alternatively you can select cell A1, copy it (control c), select the remaining cells in that column (one per row) and paste (control v).

Now select column D, and choose Insert then Column three times (to add columns for the category, notes and cheque number. Note that Nationwide includes the cheque number in their description field so you might have to find these and move the cheque numbers from column C to column F. This can be automated, but only if you are a more advanced Excel user!

Now select cell H1 (for the reconciled flag). Enter the text Y, then double click on the the little box at the bottom right of the cell. This will autofill the flag for each row. Alternatively you can select cell H1, copy it (control c), select the remaining cells in that column (one per row) and paste (control v).

To export your new CSV file, choose File then Save As, making sure you select the format Comma Separated Values (.csv).

iCloud syncing in Account Tracker

January 11, 2015 Comments off

aticon57 A lot of the support questions I receive are to do with database syncing in Account Tracker, and 99% these are to do with iCloud (Personal Sync) rather than Dropbox (Family Sync). This is not really surprising for two reasons: syncing is highly complex and iCloud itself is very buggy!

This post tries to explain some of the more common issues related to iCloud syncing in Account Tracker, together with workarounds where known.

First an iCloud overview …

iCloud is basically “cloud” based storage tied to a single iTunes account. Apps can use it to share data between all devices belonging to that user. It cannot be used to share data between different users and that is why I introduced Dropbox (Family Sync) – see the Alternatives to iCloud section below.

When an app writes a file to iCloud, the operating system (iOS) takes care of copying this to “the cloud” and from there to other devices. Apps have no control over how long this takes. Often it is seconds, but I have seen delays of many minutes, even up to an hour. On at least two occasions iCloud has been offline for days!

Basic things to check

You should check that you are running the latest versions of my app and of iOS itself. Apple have fixed MANY bugs in iCloud since the release of iOS 8.

To use iCloud, each device needs to be signed in and using the SAME iTunes account. This is done in the main Settings app, under iCloud.

And for iCloud to work, you clearly need network access, otherwise files can’t be copied between devices. This can either be WiFi, or you can control which apps can used cellular data in the main Settings app under Cellular. Note that devices don’t have to be on the same network. They just need access to the Internet.

Finally you need a few MB of free space on iCloud – you can check this in the main Settings app, under iCloud.

iCloud vs iCloud Drive?

With iOS 8 (and OS X Yosemite), Apple introduced iCloud Drive. A user can choose between iCloud and iCloud Drive, however once ANY SINGLE DEVICE moves to iCloud Drive (no matter which one, even your Mac), there is no going back. All of your files are migrated to iCloud Drive and access to iCloud will be blocked for all your other devices. This means that any device not able to run iOS 8 (e.g. the iPhone 4) will lose access to iCloud across all apps!

Basically it’s an all or nothing choice – either you stick to using iCloud everywhere or you move to iCloud Drive everywhere.

If you do want to migrate to iCloud Drive, you do this in the main Settings app, under iCloud. From there you can control which apps have access, and clearly Account Tracker needs to be selected.

Either way, both iCloud and iCloud Drive work the same as far as my app is concerned. Use of the term iCloud from now on can be assumed to mean both iCloud and iCloud Drive.

Exchanging backup files

The easiest way to test whether iCloud is working, is to exchange backup files between devices. In my app go to the Settings tab, make sure iCloud is enabled and go to the Backups screen. From there you can make a backup by selecting the Backup Now row. This will quickly create a new backup and add it to the top of the list of backups. The date and time is encoded in the file name.

Now go to your other device and run my app. Make sure iCloud is enabled in the settings and go to the Backups screen. You should see your new backup listed, if not periodically tap the refresh button at the top right. It can sometimes take a while to appear, but should do so eventually (within a few minutes for sure).

Next try making a backup in the other direction. On your second device choose Backup Now, see the new file appear and on your first device wait for it to appear there too.

If you can exchange backup files, syncing should “just work”.

Problems enabling syncing

The main issues around enabling syncing all relate to the time it takes for iOS to inform the app about new files appearing in iCloud.

Step 1 is where you enable syncing on your PRIMARY device. This copies a new sync file to iCloud.

Step 2 is where you enable syncing on your SECONDARY device. If it doesn’t give you the option of becoming SECONDARY, this is because the file in step 1 has not appeared on that device. It will do eventually, but you need to give it time (a few minutes).

Once enabled on your SECONDARY, step 3 is simply the SECONDARY waiting for an initial sync from your PRIMARY. Make sure my app is running on your PRIMARY device, and eventually you should see the “found a new SECONDARY device” popup. Again this can take a while (a few minutes).

Step 4 is simply you initiating the initial sync from PRIMARY to SECONDARY.

Finally step 5 is when the SECONDARY confirms the initial sync is complete. Again this can take a while (you guessed it, a few minutes).

In total this setup process involves writing 3 files to iCloud, and all the delays in copying them to “the cloud” and on to all devices. As a reminder I have no control over how long this takes. Having said that, the 5 step process usually takes less than a minute in total. But I have seen big delays (11 minutes for the popup to appear in step 4 for instance).

Syncing has stopped working?

Once syncing is enabled, changes are tracked and when you close the app (by pressing the Home button), that device’s sync file is updated. This eventually makes it to your other devices and you will see the Sync flag on the settings tab.

Sometimes it might appear as if syncing has stopped working. Often this is just iCloud being slow, however I am aware of one Apple issue that causes additional sync files (conflict copies) to be created. If this happens it will appear as if one device is not sending its changes to iCloud. You can see this in the sync log where it will say some number of sync files were “ignored”. The only way to recover from this is to disable syncing on all devices and set it up again, making sure you choose the device with your most up-to-date data as PRIMARY.

I have also seen issues where a particular device just fails to copy anything to iCloud. No errors are shown, the app has written the files but iOS fails to copy them. You can test this by making a new backup and seeing if that gets copied. The best way to recover from this iOS issue is simply to reboot/restart you device(s).

Finally, even this doesn’t always work. One user managed to get things up and running again by carefully backing up his data, exporting this off his device (e.g. by email), deleting and re-installing my app, then finally restoring the backup file. This process clearly resets something in iOS, but should be used with caution. In particular it is very important to know what you are doing with backup files. Don’t make a backup and then delete the app without making sure you have access to the backup file outside of the app itself (otherwise you will delete the backup file too, losing your data!).

Alternatives to iCloud

In August 2014 I added support for Dropbox (Family Sync), mainly to allow users with different iTunes accounts to exchange and share data. And because I am directly copying files to and from Dropbox myself, it is not only a lot faster but it is more reliable too.

Any user can use Family Sync if they prefer – you don’t need a family!

AppStore prices in Europe

January 10, 2015 Comments off

A few days ago, Apple adjusted all the AppStore prices throughout Europe. This is mainly due to changing VAT rules where sales tax now needs to be charged at the prevailing rate in the country of sale, rather than them using the lowest tax rate they could (15% in Luxembourg).

Apple have also made adjustments due to currency fluctuations, which they do from time to time.

In the UK, these price changes are as follows …

69p increases to 79p
£1.49 stays the same
£1.99 increases to £2.29
£2.49 increases to £2.99
£2.99 increases to £3.99
£3.99(?) increases to £4.49
£4.99 stays the same

Developers receive the sale amount minus VAT (Government’s share) minus a further 30% (Apple’s share), so a 79p sale generates 46p of revenue, a £1.49 sale generates 87p of revenue … etc.

For my own apps, Account Tracker is now £2.99, and Meter Readings and Hill Lists stay the same at £1.49. I have also reduced the price of the following in-app purchases …

Account Tracker “Personal Sync” is now £1.49 (the same as “Family Sync”)

Meter Readings “Power User” upgrade is now 79p