Monday, March 9, 2015

Blog Reboot

It's been a long time since I posted to this blog. I've decided that it is time to reboot this blog and share my experiences (no matter how mundane they may be). So what do I intend to talk about? My plans are to start or restart this blog as more of a journal about my professional journey as a programer. I intend to start first by just discussing the things I am working on right now particularly the highlights and low lights. I hope to post once a week. We'll see where this goes.

So first, who am I? I am a developer working for a large corporation in Raleigh NC. I have been a developer for 26 years and after a fairly significant bit of time in our nation's military I settled down to my current day job (that of programmer) about 16 years ago. I have worked on a bunch of different projects, at startups and now for the past ten years at my current employer (which is definitely not a startup). Up until the last year I primarily used Java, concentrating on the front end user interfaces in AWT and SWT (for you Eclipse gurus). About a year ago my company made a big push to switch from thick client applications to thin HTML5 based applications. I followed along and so for the past year I have been concentrating mostly on HTML5 clients and their integration with Java back ends.

Over my career I have used tons of different technologies. I started with C, quickly switched to C++ and then picked up Java. My "after work, work time" is spent on other areas of the development world I am interested in. Particularly mobile development on iOS. I have also dabbled in Unity, and Ruby. To date, I have released three apps to the various app stores. None very successful. My first was a simple Android game. When I found the tooling at the time to be fairly primitive and saw that iOS seemed to be a more lucrative endeavor I switched to iPhone/iPad development. That was about two years ago and since then I have released two iOS apps to the app store. One being a "light" version of the other.

One thing I struggled with early on was sharing the code base between these two apps. I feel with the module support now added to XCode, that problem may have been mitigated, but at this point I haven't had time to explore it much. I also have continued to develop my skills as a front-end web developer. Several years ago I was disgruntled with the state of J2EE applications and all the boiler plate junk you had to put together just to get a simple web site running with a backend including persistence. So I went in search of a simpler solution. I ended up deciding on Ruby on Rails. That has been a personally rewarding endeavor. As a result I have developed a few Ruby on Rails applications with dedicated front ends.

So where am I at today? This is what I intend to be the major thrust of this blog. I don't intend to talk much about my day job. My first iOS app required persistence on the device and I had hoped to sync that to the user iCloud account. This was when Core Data sync had just been released. It was a disaster. I found, like many other developers I have come to learn since, that the Core Data sync worked until it had conflicts and then the whole stack just came crashing down. You couldn't get updates and you had no idea what was going on. In reading other blogs I have learned this may have changed since then but I am still gun-shy over my experience.

So for a long time I had been looking at alternatives. Recently I have been trying out "Parse" and so far I like what I see. I have created a test app (written in Swift) and have successfully integrated Parse into it. Unfortunately, when I first implemented it I didn't include individual user support. So I tried to add that in and so far have fallen flat on my face. My idea is to create an anonymous user when the app starts up and allow the user to signup/login later in the use of the app. But it seems I get stuck when creating that anonymous user. Not sure why, the app just hangs and no information goes to the console. So that is where I am at today. Until next week.

4 comments:

  1. I just read all this year's post of your blog (which I discovered yesterday)... it was like reading something I could have written: last year I started coding as a hobby for the first time, learning Objective C and releasing a very small app that had iCloud sync of NSUserDefaults (very little amount of data, it worked well).
    This february I decided to try again, this time learning Swift and Core Data with a more complex app; I also wanted iCloud sync, and with that I struggled for months...
    What makes me angry is that about three months ago I looked at Ensembles (and CloudKit, but I need offline data and I wouldn't write the ton of code required to handle manually local data syncing with CloudKit), but decided to go with the "official" Core Data + iCloud sync.
    What a loss of time, maybe if I found your blog before I could've given Ensembles a chance... instead, I started with Ensembles last saturday and got here by chance yesterday. Still, glad to have found someone who gets what I've been through with Core Data + iCloud...

    I'll keep reading your new posts! Have a nice day,

    @cdf1982

    ReplyDelete
    Replies
    1. Thanks for the comments. I've been working on iOS for three years now and have tried, on three separate occasions, to get CoreData with iCloud sync working, and each time I failed miserably. The last time was a few months ago (I might have written about it). At any rate, the syncing seemed to work, but I found I couldn't add multiple objects quickly in succession. Some of the objects would get lost. I posted on the CoreData forums about the problem and all I got back was comments like "I've had the same problem, have you figured it out yet?" So I'm leaning away from it as a Cloud solution (if you couldn't already tell). At any rate I just posted the first part of my exploration with Ensembles. Maybe there is something useful there.

      Delete
    2. One last thing, in case you're interested.

      Before trying to implement Ensembles, I was considering this approach, which is well regarded but also incredibly complex, for Core Data + iCloud: http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/

      If you want to take a look just out of curiosity...

      Delete
    3. Thanks, I will take a look.

      Delete