The Need for an iMessage API

So like everyone else with an iPhone I'm a pretty heavy iMessage user.  I love having the ability to use it on both my iPhone AND my Macs.  I like that it's encrypted so that random people can't snoop over an open wifi spot.  I also like that just about everyone I know is on the service.  The only thing I think it's missing?  An API.

I would love it if Apple provided an API or protocol for access to iMessage.  I really like the Messages app on the phones, but I wish I could use a different app on my Mac.  I use the Mac app because it's my only choice.  I would LOVE to be able to hook iMessage into Adium or a similar app.  I think this could really open up a lot of possibilities for apps.

Other possibilities are that a fully open API would open up would be other layers of encryption if you wanted them. Services like Adium provided encryption across services like AOL (RIP) and Yahoo (RIP), so it could stack that on top of Apple’s built in encryption. I don’t think it’s really needed, but having that option would be great.

Remember how when Twitter started it had a completely open API? There were TONS of clients and a ton of innovation. I would love to see that same sort of environment around Apple’s Messages. It would even be a really easy way for them to expand onto Android. Someone else would end up making a client for it. Of course let’s all hope that if Apple went this way that they don’t go down the Twitter route and then lock everyone out.

Moving from Objective C to Swift

So I think I’m finally going to attempt to make the transition from Objective C to Swift. I’ve been putting it off for a long time, and I finally have a new project I’m going to piddle with, so it seemed like a good time. I’m a bit sad because I’ve finally become pretty proficient in Objective C and leaving it for Swift will be tough. I don’t write Objective C for work or anything, so everything I have done with it has been at home. This means it takes me longer to get up to speed on everything because I play with it in my free time. I have VERY little free time right now so it means it will be a slow learning experience.

So far I have been able to do everything I want with the Apple APIs but I think its just a matter of time until that isn’t the case. If this really slows down my project or myself (aka I move at like CS101 type pace) than I am definitely going to be switching back to Objective C until I’m forced to give it up.

Hopefully this is a smooth process… wish me luck!

Gotta Catch 'em All

So it took me a few days to actually be able to register an account in Pokemon Go, but it finally happened.  Of course I picked my boy Charmander to be my starter.  I have only been able to play the game a little bit, but what I've seen I've enjoyed.  I wouldn't be exaggerating if I say my wife drove me around the neighborhood on our way home one night, just so I could see what I could find...  I can not confirm or deny if we stopped in the middle of the road to catch a Rattata...

So my post isn't a review of the game, but me saying how amazing of an impact I think the game has had.  I have seen TONS of people in my Facebook feed and my Twitter feed that are playing the game.  A lot of these people aren't people you would expect to be playing Pokemon!  I have seen people walking through my neighborhood playing and literally had a car stop, the passenger look around on their phone, flick the screen (throwing their Pokeball!), and then drive off.  

I think it's great that the game has people going around town, getting people moving outside, and being nice to one another.  I've seen countless accounts on my Facebook feed where people have met other people playing and being helpful to one another.  Brittany and I saw about 30 people standing outside of a restaurant playing because it was a PokeStop with a lure.  Pokemon Go may be short lived for the general population, but for the time being I've been amazed.  There may be other games that are "better" but I'm yet to see ANY mobile game have this kind of influence.  I've been very impressed and I hope this isn't a short lived phenomenon.  

Go Team Red!  Gotta Catch 'em All!!

 

 

Using External Code Libraries

So programming is one of the hobbies I have.  I don't consider myself a good programmer, but I'm a decent one (or so I think).  Most of what I have done lately is pure Objective C and Swift stuff (mostly Obj C but I have toyed around with Swift).  I have written apps that were published in Apple's iOS App Store, but I have never depended on my programming ability for my actual income.  Everything I do now is mostly hobby stuff, but it may one day end up leading to a new app.

One thing I have always strived to do is not to use any external libraries or resources outside of official APIs.  I always try to write my wrappers, classes, and everything on my own.  Even though I know there are TONS of libraries and code examples on GIT Hub, StackOverlfow, etc, it still makes me uncomfortable.  I'm worried about unexpected bugs I have to troubleshoot, code no longer being maintained, code I didn't write becoming obsolete, etc.  This can make for a frustrating experience.  I mean what happens if your app bases itself off of a library someone random maintains, they decide to stop all work on it and pull it offline, and now you are up a creek without a paddle (see the whole Parse situation, even though they at least tried to help the situation).

Recently I've actually thought about using two different external libraries because I honestly don't have the time lately to really sit and deep dive into a new topic (having a newborn baby can have the effect on you, but man she is awesome).  I want to be able to use CloudKit outside of the App Store and the only way to do is that is to use the CloudKit web services or JavaScript  frameworks for CloudKit.  Now I have NEVER written JavaScript before and honestly, didn't want to learn how. It's not that I don't think learning JS would be useful; I just have had to pick and choose what I want to learn.  I have looked at Agilebit's AgileCloudSDK and I like how it works.  I've also looked into using some sort of wrapper for the FSEvents API.  Mainly that's because I don't want to really dig into a C API.  While I would love to spend a lot of time learning everything, I just honestly don't have the time.  I'm lucky to just be able to write anything I already know!

While the apps I released in the App Store were all 100% my code and not dependent on others resources, I can see myself using a few libraries in the future.  I try to truly vet the libraries to make sure they are "future proof" and at least have source code available for me to use.  Anything closed source I won't use because I can't change something in it, and I am not sure what all it does (outside of what's documented).  

Hopefully my future does not involve using many of these libraries or code snippets.  I honestly believe buggy and bloated software has increased because people carelessly use unknown code and snippets.  Just because something works that you copied off StackOverflow does not mean it is the right solution.  Let's hope I don't get that lazy and undisciplined as I continue my coding adventures.