« Update on new attendance app | Main | Attendance and GradeA updates »
Monday
Jan232012

New attendance app

The current version of Attendance has reached some limits on features I can add given some of the original design decisions. The original app was developed when iOS 2.0 was current which limited some of the features that could be implemented and how I designed the original internal data structures. I also had no idea how many different ways people would want to use the app so I had to try to add new features and make them fit with the original user interface and without major changes to the internal data structures.

Because of this, I decided to do a complete rewrite and develop a new app from scratch using Apple's Core Data technology which was not available for iOS 2.0. Since the internal data structures are completely different, I cannot easily make it an update to the existing app and I've tried to redesign the user interface to be more intuitive and require fewer presses/touches for common tasks so the interface is completely different. Also, the new app will require iOS 5 or higher, while the current Attendance app will run on any iOS 4.0 or higher device. Apple doesn't provide a way to transition people to a new different app (i.e., there's no way to give discounts to the people who have bought one app in the last year). I don't make my apps free because there are no ads (ads are not a good fit for an attendance app), it takes a lot of my time to write, and there's the time to answer emails. In three years, I've answered a few thousand emails and obviously a free app would cause even more people to try it and email questions. So far I've been able to provide a personal response to everyone that has asked a question, but if the app ever sold more than a few copies a day, I'd never be able to keep up. Selling a few copies a day at $5 (USD) (of which I get $3.50) does not allow me to quit my day job and do this full time. And there are associated costs with the app (web site, annual developer fees, extra test device, etc.) so I need to charge enough to cover these costs and justify spending my limited free time on it. At this point, I've spent about five full-time weeks of working on the new app (mostly over the December break) and there's probably at least another five to eight weeks of full-time work to reach the point where version 1.0 can be released.

So given the options, here is the plan. I plan to release the new app in June or July of this year (2012 for anyone reading this much later) and will have an introductory price of $4 (USD) for two weeks for anyone who wants to purchase the new app before raising it to $5 or $6 depending on how many features I add in the original version. I will post an announcement on this blog and on Twitter (@davereed) when the app nears its release (along with screenshots and more information).

I plan to continue to support the existing Attendance app for at least one more major iOS revision. In other words, assuming Apple follows their pattern and releases one major iOS upgrade per year, I will make certain the current Attendance app still runs on iOS 6.0 without problems so anyone that has purchased the existing app should be able to use it at least through the summer of 2013. Obviously, if you haven't purchased Attendance already, and don't need it until this summer, you should wait and buy the new app when it is released. But this way, anyone who has spent $3-$5 on it in the past should get another 15-18 months use out of it. I'm certain some people will be upset, but there's no good option given the complete rewrite of the app and hopefully people will understand that $5 is reasonable for an app that you use frequently.

To continue allowing updates to the existing Attendance app, I will need to leave it for sale (so I can provide free updates for iOS 6 compatibility). Once I release the new app, I will probably raise the price of the current Attendance app to something like $100 so people don't accidentally buy it and have an occasional one-day $5 sale for people that have iOS 4 devices and want to purchase the old version. If anyone knows of a better way to be able to handle free updates without leaving the current version for sale, please let me know, but given the options Apple provides, I don't think there is.

The new app uses a separate file per course instead of one database file (the attend.db file) as is the case with Attendance. This will allow people to send their data to another person app and the person will be able to look at the data using the new app on their device, without overwriting their existing data on your app. So teachers could send their data to the administrative office, a professor's TA could make a separate class for their TA sessions and send that to the professor, etc.

Here is a list of the main improvements:


  • simpler GUI (course-based instead of tab-based)

  • improved CSV import (allows you to match the columns of a CSV file to the fields in the app)

  • 5 custom fields to store any data you want (instrument for band directors, etc.)

  • three lines per student while taking attendance

    • first line contains first name/nick name and optionally the middle name

    • second and third lines are customizable and can hold any of: middle name, last name, ID #, note, or any of the five custom fields



  • sort by first, middle, last identifier,note or any of the five custom fields (and secondary sort on these also)

  • specify which student fields to include in reports (i.e., you can include ID, email or phone or the 5 custom fields, etc.)

  • option to show only people who are present (in addition to the ability to hide those that are present) while taking attendance

  • optional second status to record values such as homework received, participation value, or check people out (useful for daycare situations)

  • each status has a "point" value

    • can use it to record values such as 0.5 for Late, 1.0 for Absent

    • or use the points to total participation points in the secondary status

    • can set name to display in red when a certain point value is reached

    • summary report can optionally show the point totals



  • optionally indicate what times your course meets so you can add the next date in one press

  • I probably will add an optional app pass code now that Apple provides the ability to encrypt data files


Most of the features in the current Attendance app will exist in the new app by this summer when I release it. Here are the features that exist in the current Attendance app but probably will NOT exist in the new version:

  • Likely will never add

    • import from Address Book

      • was the only way to import names in iOS 2.0 but better ways now with CSV files from email or Dropbox



    • device transfer to copy data to another device (Dropbox and email are better, simpler, and more reliable)



  • Possibly will add

    • Group texting

      • most carriers limit SMS group texts to 8-10 people so this has never worked well

      • I need to find out if there's a better way to support this and if so, will add it

      • sending an individual SMS to one person will continue to exist






I haven't yet decided if will add a way to import your existing Attendance data from the attend.db file. While this would probably increase sales, I don't know if I'll have time to get to it and want to make certain I release the app this summer so people can start using it in August (which is the time when many people start new terms/semesters/courses). It will be a fair amount of work to do the import and obviously is code that would only be used once so I don't know how much time I should devote to it over other features.

Another question I suspect I'll get is about iCloud support. At this point, I am not certain. iCloud makes automatic changes to your data so I'm very worried about this causing "corrupt data" and how conflicts are handled (i.e., what happens if one of your devices has someone marked absent and the other device has them marked present for a given date and how would this work when copying data files between multiple devices manually). My guess is the initial version released this summer will not have iCloud support, but I will try to look into it later in the summer. You'll still be able to copy (not sync) a course to another device by emailing (or using Dropbox) the course data file and opening it on the other device.

So, if you've read this far, you deserve the option to possibly help shape the new version. I've got enough features that I'm using it this semester after working on it for about five full weeks (most of which was done over the December holiday break) and double-entering data in the original Attendance app to check the data. So if you have comments, please send an email to me: dave256apps (at) me (dot) com with the subject "new app features" and I'll take a look. Try to be as exact/explicit about your feature request as possible. I won't guarantee I'll respond to these, but I will read all of them.

The main items I need to work on yet are:


  • random student feature

    • do I provide the option to save the random groups so you can record who was in the groups you created

      • for example, I might create groups of two for the first assignment and want to go back and see who was in those groups; right now you can email the group to yourself, but storing it in the app might be useful



    • do I provide the option to then drag and drop students between groups to adjust the group

    • anything else I haven't thought of for random groups



  • reports

    • the only report completed so far is the summary report

    • what other reports would be helpful and how should they be formatted

    • there are still options to email a report for a day to yourself or the school office (including a full report or just the absent students) and the ability to send a report for an individual student to yourself, the student, or someone else

    • because each "course" is a separate data file, the reports will initially be per course, but perhaps later I will try to add reports for a student across all courses




I think most people will find the new interface design simpler and that the new features make it well worth buying the new app, but again, you should be able to continue using the existing Attendance app for at least another year (or longer if you don't update the iOS version).

EmailEmail Article to Friend