PodSearch

Developing Perspective

#35: IcönFactory

 

00:00:00 ◼   ► Hello, and welcome to Developing Perspective, developing perspective as a podcast discussing

00:00:06 ◼   ► news of note in iOS, Apple, and Mac development primarily. I'm your host, David Smith. I'm

00:00:11 ◼   ► an independent iOS and Mac developer based in Herndon, Virginia. Today is Thursday, February

00:00:16 ◼   ► 16th, 2012, and this is show number 35.

00:00:19 ◼   ► All right, for today's show, I'm going to have a couple of interesting topics. First,

00:00:24 ◼   ► to start off with, I'm going to talk about something I released yesterday, which is an

00:00:28 ◼   ► open source library for securing contact data in iOS.

00:00:33 ◼   ► So if you've been following along with the address book saga, you may be sort of aware

00:00:37 ◼   ► that there's been all of this controversy about applications sharing private contact

00:00:42 ◼   ► information in their applications in violation of the Apple's terminal service, and it sounds

00:00:47 ◼   ► like Apple is going to be starting to treat that data differently as a result of the controversy

00:00:52 ◼   ► and so on.

00:00:53 ◼   ► But the whole thing kind of got me thinking about how difficult it is for developers to

00:00:57 ◼   ► to take what you could call industry best practice steps to protect that data in the

00:01:03 ◼   ► first place.

00:01:04 ◼   ► So for example, a lot of this has to do with both asking and confirming that users would

00:01:10 ◼   ► like their contact information used and shared, which is required by the developer terms and

00:01:19 ◼   ► agreements as well as also just seems like good common sense.

00:01:23 ◼   ► And then, the second thing is using hashing or cryptographic means to ensure the privacy

00:01:30 ◼   ► of that data.

00:01:31 ◼   ► So if you're trying to do a matching service, you don't actually need to send someone's

00:01:34 ◼   ► entire contact book up to your server, you just need to send tokens that represent those

00:01:39 ◼   ► addresses, those phone numbers, in a way that you can match later.

00:01:43 ◼   ► And so I sat down and it turns out it's very easy to do this.

00:01:47 ◼   ► In a couple of hours I was able to write a library that is free and available on GitHub

00:01:51 ◼   ► under an MIT license that does this for you.

00:01:54 ◼   ► So it takes care of confirmation prompting as well as taking your address book and turning

00:01:59 ◼   ► it into tokens for email or phone numbers.

00:02:03 ◼   ► So if you're thinking about doing this, have done this, you have no excuse now to not be

00:02:09 ◼   ► using these kind of press practices.

00:02:10 ◼   ► It was very straightforward.

00:02:11 ◼   ► It's like I said, it's out there on GitHub.

00:02:13 ◼   ► There'll be a link to it in the show notes.

00:02:16 ◼   ► So please, please, if you do anything like this, either look at the code and apply it

00:02:20 ◼   ► to your own project or copy it, drop it in, do whatever.

00:02:26 ◼   ► But by all means, please take good steps

00:02:28 ◼   ► to protect your users' information.

00:02:31 ◼   ► All right, our second topic today I'm

00:02:33 ◼   ► going to be talking about is just a little trick

00:02:34 ◼   ► that I did yesterday that I thought

00:02:36 ◼   ► would be worth sharing.

00:02:37 ◼   ► And this relates to iTunes Connect,

00:02:39 ◼   ► and specifically using services for pulling down your iTunes

00:02:43 ◼   ► Connect sales information.

00:02:45 ◼   ► So yesterday, I started trying out

00:02:46 ◼   ► a service called App Annie, which

00:02:48 ◼   ► is a web-based service that pulls your sales reports,

00:02:52 ◼   ► pulls them into your account there, does some analytics,

00:02:56 ◼   ► graphing, all kinds of fun stuff like that, which is kind of cool and kind of fun.

00:03:00 ◼   ► And I was wanting to try it out.

00:03:03 ◼   ► But it always makes me nervous when I was giving out my iTunes Connect

00:03:06 ◼   ► credentials to a third party, both just from a paranoia perspective,

00:03:11 ◼   ► as well as there's things that could go wrong.

00:03:13 ◼   ► And the app stores my livelihood.

00:03:15 ◼   ► That's what pays my mortgage every month.

00:03:16 ◼   ► so it's very important for me that that account and the things going on around that is safe

00:03:24 ◼   ► and secure.

00:03:25 ◼   ► And so what I did is, this is the pro tip part of this, is that you can go into iTunes

00:03:29 ◼   ► Connect and you go to the Manage Users area within that you can add a section talking

00:03:36 ◼   ► about a new user and you can give that user a role that's just sales.

00:03:41 ◼   ► basically that user then can pull your sales reports.

00:03:45 ◼   ► I just created a user that's like reports@crossforward.com

00:03:49 ◼   ► this user which doesn't really exist, that's an email alias

00:03:53 ◼   ► to my account. And basically by doing that, what I allow myself to

00:03:57 ◼   ► do is, that's what I tell AppAnnie, that's the credentials.

00:04:01 ◼   ► So if that's ever compromised, if they do anything, all anybody could do is

00:04:05 ◼   ► get into my iTunes account and pull my sales. Which could be embarrassing I suppose, which could be

00:04:09 ◼   ► convenient which is certainly not something that I'd like to happen

00:04:13 ◼   ► but overall that's nowhere near as bad or as dangerous or whatever as

00:04:17 ◼   ► having someone be able to log into my iTunes account, submit apps under my

00:04:21 ◼   ► name, pull apps, delete apps, do all kinds of shenanigans that would just be a

00:04:26 ◼   ► horrible

00:04:26 ◼   ► nightmare to me.

00:04:28 ◼   ► So I just highly recommend if anyone uses one of those services, you know, something like

00:04:31 ◼   ► AppAnnie, AppFigures, to some degree AppViz, even though that's a local

00:04:36 ◼   ► thing so it's not as big of a deal.

00:04:38 ◼   ► but it's just definitely a good idea to kind of create this segregation. It's also

00:04:42 ◼   ► something that if you ever have to share

00:04:43 ◼   ► accounts with different people,

00:04:46 ◼   ► make use of that feature. It's there for a reason that you can create users and

00:04:50 ◼   ► sort of create separations of privilege and access in your iTunes

00:04:54 ◼   ► account, which if it's important to you,

00:04:57 ◼   ► if you're looking for the App Store,

00:04:59 ◼   ► you've got to take that stuff seriously.

00:05:01 ◼   ► Alright, and then moving on to our last subject. So I was all set to do just a

00:05:05 ◼   ► a short show this morning with those kind of topics, and then Apple dropped a big gift

00:05:10 ◼   ► in our laps this morning. So they announced 10.8, which is Mountain Lion, and it's got

00:05:17 ◼   ► all kinds of fun new features and things. I'm downloading the developer preview right

00:05:21 ◼   ► now, and because I haven't actually seen it, it's kind of fun because I can talk with a

00:05:24 ◼   ► bit more liberality in terms of I'm not as worried about the NDA stuff because all I

00:05:29 ◼   ► know is the stuff that's in the public domain. And so basically, this is coming out this

00:05:34 ◼   ► it's going to be kind of the next step in the iOSification of Mac OS, so it brings a lot of better iCloud capabilities.

00:05:43 ◼   ► Some of the applications from the iPad and iPhone are going to be brought over to the Mac.

00:05:48 ◼   ► And just generally it's kind of that next step in sort of unifying those two together.

00:05:53 ◼   ► And I'm kind of excited about it. I mean, as a developer, this is just super exciting.

00:05:59 ◼   ► I mean the guy, it's like, if this is what you like, if this is what you do, it's a kid

00:06:03 ◼   ► in a candy store.

00:06:04 ◼   ► Apple is just saying, hey, here's some new fun stuff, here's some new fun stuff, look

00:06:07 ◼   ► at this, learn this, be excited, and I am.

00:06:11 ◼   ► And there's some interesting features for developers, I think, going on here.

00:06:15 ◼   ► Specifically, there's the new feature called Gatekeeper, and I think this is probably going

00:06:19 ◼   ► to be a little bit controversial to some people, but overall, I think it's a great idea.

00:06:24 ◼   ► What Gigiuber does is creates a new,

00:06:29 ◼   ► it's the next step in this gradual security sandboxing approach

00:06:32 ◼   ► that they've been doing in macOS.

00:06:36 ◼   ► Where at first they introduced just the Mac App Store,

00:06:38 ◼   ► which is a way for people to get a hold of applications

00:06:40 ◼   ► in a safe, secure, approved, curated fashion.

00:06:43 ◼   ► And then they introduced sandboxing in line,

00:06:47 ◼   ► which allows you to secure your applications more strongly.

00:06:49 ◼   ► strongly so you'll be able to say you know this application can only do this that and the other

00:06:53 ◼   ► and it goes through the review process and increases security and safety there.

00:06:58 ◼   ► And now what Gatekeeper does in 10.8 Mountain Lion

00:07:03 ◼   ► is allows you to create three levels of applications that is a user configurable setting.

00:07:10 ◼   ► The first level it's just like it is now where basically any application file that you have can be run on your computer.

00:07:16 ◼   ► period. So it's just like it is now, it's kind of like the Wild West, you can do what you want.

00:07:20 ◼   ► Then the next level, and this is what's sort of new,

00:07:24 ◼   ► or most interesting and new, is that they're introducing a second level that's in between

00:07:28 ◼   ► the Mac App Store and between the Wild West, where developers can become

00:07:32 ◼   ► registered and have a signing credentials

00:07:36 ◼   ► and certificates that let them identify their applications as safe, good,

00:07:40 ◼   ► and sort of not necessarily approved by Apple

00:07:44 ◼   ► there's no review process for this, but you're saying

00:07:49 ◼   ► you create that identity, it creates a persona behind an application that can be verified.

00:07:51 ◼   ► So a developer can say, "I am developer X, and here's my certificate, here's my application,

00:07:55 ◼   ► I put it out on the web, you download it and you can run it,

00:08:01 ◼   ► and then it will be verified by the Mac OS

00:08:04 ◼   ► to make sure that is actually a correctly signed, cryptographically secure application,

00:08:09 ◼   ► so you know it's actually coming from them.

00:08:14 ◼   ► It's not some malware or something that someone's injected

00:08:16 ◼   ► or made it look like, "Hey, here's the new thing from the icon factory,"

00:08:18 ◼   ► and it's actually from the iKoon factory.

00:08:21 ◼   ► And the iKoon factory is actually stealing all your data, or something like that.

00:08:24 ◼   ► So it's a great way to bridge the gap between

00:08:29 ◼   ► forcing everybody to be in the Mac App Store

00:08:32 ◼   ► and adding that extra level of security,

00:08:34 ◼   ► because it also means that if something ever goes wrong

00:08:37 ◼   ► and say the icon factory's certificate somehow comes out,

00:08:39 ◼   ► compromised or weird things happen.

00:08:42 ◼   ► Apple can on there, and there's a revoke the certificate,

00:08:45 ◼   ► and then that application won't run for anybody user who

00:08:49 ◼   ► has this feature enabled.

00:08:51 ◼   ► And by default, I believe that's the setting that it'll have.

00:08:53 ◼   ► And then they've also introduced a feature one level farther,

00:08:56 ◼   ► where rather than allowing the non-Mac App Store third

00:09:00 ◼   ► parties, you can only install applications from the Mac App

00:09:03 ◼   ► Store.

00:09:03 ◼   ► And this sort of we can call this kind of, I don't know,

00:09:06 ◼   ► grandfather mode.

00:09:08 ◼   ► where you can set up someone's computer.

00:09:13 ◼   ► You buy your parents a new Mac,

00:09:15 ◼   ► you hook it,

00:09:18 ◼   ► set it up, you enable that,

00:09:19 ◼   ► and basically they're safe.

00:09:21 ◼   ► There's very few things they could do to mess up

00:09:23 ◼   ► their computer, to install things funnily,

00:09:25 ◼   ► to get not necessarily viruses,

00:09:28 ◼   ► but just mess things up,

00:09:30 ◼   ► because the application installation process is managed.

00:09:32 ◼   ► Starting next month, all applications are going to be sandboxed

00:09:34 ◼   ► in the Mac App Store, so the security's there.

00:09:37 ◼   ► And it just kind of creates this great little,

00:09:40 ◼   ► you know, kind of ensconces them in security

00:09:42 ◼   ► that I think will, A, do good things for people

00:09:45 ◼   ► feeling comfortable installing applications more.

00:09:47 ◼   ► It's kind of what definitely happened in iOS,

00:09:49 ◼   ► where because it's safe to install an application,

00:09:52 ◼   ► you know, if anything goes wrong, you just hold on to it.

00:09:54 ◼   ► You just sort of hold on to it.

00:09:55 ◼   ► It's so it's wiggle, you hit the X, it's gone.

00:09:58 ◼   ► And your system is exactly the same.

00:09:59 ◼   ► You don't have these weird problems that, you know,

00:10:00 ◼   ► it's like on Windows where if you install an application,

00:10:03 ◼   ► you never know if you quite cleaned it up or what's going to happen with it.

00:10:08 ◼   ► So I think it's a great feature there and I'm looking excited about it.

00:10:11 ◼   ► There's a bunch of other stuff that I've been hearing hints and indications

00:10:15 ◼   ► in the developer community of fun things under the covers that I look forward to diving into.

00:10:20 ◼   ► But once I get into too much of that, I can't talk about it too much because it's usually under an NDA.

00:10:24 ◼   ► But bottom line, super exciting time to be a Mac and iOS developer.

00:10:29 ◼   ► It's definitely kind of you see they're in the right industry.

00:10:30 ◼   ► I mean, you look at, I think about, oh, if I did Windows 8 or all these other platforms

00:10:37 ◼   ► that are coming out, you can't imagine Microsoft developing and releasing a new version of

00:10:43 ◼   ► the OS every year.

00:10:44 ◼   ► And fair enough, it depends on what you call a version.

00:10:47 ◼   ► Mountain Lion isn't a major departure from Lion, but still, they're focusing their resources,

00:10:55 ◼   ► energy and attention on making this platform amazing and awesome.

00:11:00 ◼   ► That is only going to do good things for developers.

00:11:03 ◼   ► So that's it for today's show.

00:11:05 ◼   ► Like I said, exciting fun things.

00:11:07 ◼   ► It's an exciting fun time to be a developer.

00:11:10 ◼   ► I'll have some links in the show notes to all these kind of things.

00:11:12 ◼   ► As always, if you like the show, please tell a friend, let someone know about it.

00:11:16 ◼   ► It's the best thing you can do to support me and keep me motivated to do the show.

00:11:21 ◼   ► If you have any questions, comments, feedbacks, thoughts, concerns, please hit me up on Twitter.

00:11:25 ◼   ► I'm @_davidsmith, underscore D-A-V-I-D-S-M-I-T-H.

00:11:30 ◼   ► I blog at david-smith.org.

00:11:33 ◼   ► And otherwise, yeah, have a good day, happy coding, enjoy reading the Mountain Lion release

00:11:37 ◼   ► notes, and have a good Thursday.

00:11:39 ◼   ► Bye.

00:11:39 ◼   ► Bye.