Category Archives: Tech

Materials from my DevCon sessions

So, I’m finally posting the materials from my FileMaker DevCon 2013 sessions.

The first one was a  pre-conference session, Crash Course in Advanced Developer Techniques. The available files are the presentation slides and the demo file: Crash Test Dummy, which contains a LOT of sample code and use of techniques.

The second one was What Was I Thinking?! Coding Best Practices. The presentation slides are available, and the demo file from my other session was used a few times to show examples.

FileMaker DevCon 2013

So, my blog has NOT been regularly updated, but I thought I should add a post acknowledging that I will be presenting at FileMaker DevCon 2013 in San Diego, CA, which runs August 12-15.

The sessions I will be presenting are:

  • Mon, 1:30 PM: Crash Course in Advanced Developer Techniques (PreCon Session)

    Ever attend a session where the presenter threw out a phrase like “Then I used X to make this happen…” and felt like you didn’t understand what follows? Instead of having to hang around afterwards to find out what they meant, come to this session and learn about virtual lists, complex script parameters, modular coding, web viewers as custom interface elements, and much more.

  • Wed, 10:45 AM: What Was I Thinking? Coding Best Practices

    Developers should always be thinking “How will this code look to the next developer?” – that saves time later. But, coding best practices also save time NOW, by helping us avoid bugs in the first place. Dashing off a quick script or sloppy calculation might feel faster, but when we spend an extra hour tracking down a bug that could have been avoided, we discover that consistency saves time everywhere.

I’m also considering hosting an Unconference session on “Cracking the Clipboard” to do some very useful things with FileMaker objects in the clipboard. We use that technique at my office to dramatically save time during development. We  avoid a lot of repetitive work by converting objects between types, search-and-replace within objects, making multiple copies of similar objects, changing the table occurrence for a group of related layout objects, and much more. For example, one macro we have takes selected field definition objects and puts field layout objects (and matching labels), Set Field script steps, and their fully-qualified field reference names as text all into the clipboard at the same time. So, you select a bunch of field definitions and can then paste them onto a layout, into a script, and even into a text editor. The same thing works in the other direction.

I will have demo files available during and after DevCon for each of the official sessions, and may find time to throw something together for an Unconference session, but my schedule has been very busy lately – rolling out a FileMaker Go app for work, complete with home-brew (for now) sync functionality.

Apple’s In-App Purchase Requirements

Has Apple really made a major shift in its developer guidelines (and is trying to claim it hasn’t), or was a mistake by a spokesperson exacerbated by journalists who don’t seem to understand the current situation?

There is some pandemonium going on in tech circles about a “change” in Apple’s guidelines for developers reported by Sony in a NY Times article, “Apple Moves to Tighten Control of App Store,” by Claire Cain Miller and Miguel Helft. Apparently, Sony is complaining that they were told they could not include the Sony Reader Store within their app, although the Times didn’t explicitly report that Sony was attempting to make purchase within its app. Note first that the other eBook apps do not provide for purchase within the app, but rather take the user to a web page in Mobile Safari.

The Times article says that Apple reportedly told Sony “from now on, all in-app purchases would have to go through Apple.” (emphasis added)  Note that the words “from now on” imply something that is not correct. As we will see, the Guidelines already forbid that, and existing apps have abided by that guideline. The authors muddied the water by not understanding the current situation, seeming to just take Steve Haber, president of Sony’s digital reading division, as explaining the past and current situation accurately.

Apple’s App Store Review Guidelines have two sections that are relevant to In-App Purchasing:

11.2 Apps utilizing a system other than the In App Purchase API (IAP) to purchase content, functionality, or services in an app will be rejected.
11.3 Apps using IAP to purchase physical goods or goods and services used outside of the application will be rejected.

Read carefully, they do not clearly forbid what Amazon has been doing, as it does not “purchase content, functionality, or services in an app” (emphasis added).  However, the is ambiguity that leads to a problem. Guideline 11.2 could be read as forbidding an alternate system “in an app” that is used to purchase, OR it could forbid an alternate system (even outside the app) that is used to purchase items that will be used “in an app.” This is where the Guidelines are confusing, and potentially forbid what Amazon is doing. Of course, read that second way, they also forbid Hulu Plus and many other apps, including AT&T’s Mark the Spot, which allows you to report problems with their network (which of course requires that you pay to be an AT&T customer). This second reading would also necessarily lead to rejection of the Dropbox app for people who have paid accounts, as well as any other app that uses “functionality” or “services” that have been paid for elsewhere. If this is the reading Apple intends, they will destroyed a wide swath of apps from the App Store.

Because of that outcome, I think it is much more likely that the correct reading is that 11.2 forbids building a system “in an app” that is an alternative way to purchase items. Read that way, with 11.3 forbidding the use of Apple’s In-App Purchasing to buy content that will be used outside the app, you have a pair of guidelines that say In-App Purchasing is the only way to buy content “in an app” (but allowing external purchases), and that it cannot be used to buy goods that are intended for use outside of the app. Together, those guidelines are thus designed to ensure that purchases made within an app use Apple’s method, and are only for truly “in-app” purchases.

What I can’t explain is the interpretation offered by Apple’s spokesperson, Trudy Miller. Here is the quote attributed to her by the NY Times:

“We have not changed our developer terms or guidelines . . . . We are now requiring that if an app offers customers the ability to purchase books outside of the app, that the same option is also available to customers from within the app with in-app purchase.”

If that quote is accurate, then it is hard to see how the statement is not either contradictory or incorrect. First, it supports my suggestion that 11.2 does allow purchases made outside the app, as it implicitly accepts that as curently-allowed behavior. However, the statement then seems to add something completely new, not found within 11.2 or 11.3 (or other parts of the Guidelines): that following the rule set forth in 11.2 now adds a new requirement that the same items must be available via Apple’s In-App Purchasing. That addition directly contradicts the first part of the statement that they “have not changed [the] developer terms or guidelines.” As John Gruber sarcastically points out in an article on Daring Fireball entitled “Oceania: We Have Always Required Books From the Eurasian E-Bookstore to Be Sold Through Our In-App Purchasing System,” a new term is certainly a change to the Guidelines. The other possibility is that Ms. Miller is simply incorrect about this new policy.

It is hard to see how the statement is not other mistaken about what Apple’s policy is, or mistaken when it claims Apple has “not changed” the terms. Either way, all of this would have been more clear, or perhaps completely unnecessary, if the authors of the original article in the Times had understood some of these issues and asked the people they were interviewing about these contradictions, rather than publishing an article that doesn’t actually explain the story, but instead seems to move forward based on the spin given by Sony. The story has either uncovered a major policy shift by Apple that could undermine a large section of the platform it has worked so hard to build, or it has uncovered the amazing fact that Apple has made Sony play by the same rules everyone else already does, even if Sony complains about it to an incredulous press.