Listen instead of delegate

One of the things that becomes obvious very fast is that iOS uses function pointers (selectors) or delegates to do callbacks. Usually iOS only allows one, meaning one pointer or one delegate. This is fine if you are the model to a table view or something, but in the case of events, history (read: Java) has proven that the listener approach is very effective. Since I am coding a number of components for iOS now, I really would like them to inform interested objects of what happened. For example when a date was picked in the calendar picker, or a year changed in the year mini picker. And I’m not going to code that again and again. Hence: KPListenerManager. Continue reading “Listen instead of delegate”

UIOverlayView – painting on top of your subviews

My first baby steps are becoming toddler steps and the first classes of a generic library are forming. I have found that making my infamous calendar picker part of my technology shake-down projects, usually forces me to code parts that are very educational. So by now there is a Swing version (JCalendarPicker), a JavaFX 1.3 version (FXCalendarPicker, part of JFXtras) and soon an iOS version (KPCalendarPicker). The Swing version actually was very straight forward. The JavaFX version required me to build a spinner component for the year and month selection. The iOS had the same requirements as JFX, because the default UIPickerView takes up way too much space on the screen to be used as a subcomponent for CalendarPicker. So I developed KPMiniPickerView which basically is UIPickerView on the scale of a text field.

KPMiniPicker has the looks of a text field, but I needed some way to visually make it different, so users know that it is not a text field. I decided to do this by painting blue arrows on top of the childeren, showing the direction in which the minipicker could be slided.

Continue reading “UIOverlayView – painting on top of your subviews”

First baby steps in iOS

Everyone seems to be developing iPhone / iPad applications lately. And let’s be honest; it’s great hardware. Long battery life, good UI, looks great. I must admit that I’m one of those “I don’t like the way Apple treats its customers and therefore I do not buy Apple” people. So I have a HTC phone, an Acer laptop, a Popcornhour media streamer, anything but Apple.

But recently someone asked me if I would be able to develop an iPad application and I had to say no. However, the fact is that business is still slow and that I’m still using my reserves frequently to make ends meet (living in a somewhat country side area doesn’t help my opportunities either). So I decided do a trial project for myself, just to see what iOS is like. Having done Objective-C somewhere in ancient history and remembering I liked it back then, was a good motivator, and I figured I would be able to pick it up fairly easily considering all of the programming languages I have coded. So I bought a book and spent a number of evenings reading through it, until I felt ready to give it a try.

I’m a strong believer in that every trail project should take on a real world situation, so you will be forced to tackle actual problems and not just the ones you think are interesting. We have a hour registration system we use internally and is used by a few of our customers. The main hour entry is done via an applet and I figured that would be an interesting test case; hour entry on the iPad / iPhone. It required me to do GUI and communicating with the back-end. Continue reading “First baby steps in iOS”

About Oracle and Java

You know, half the world is stumbling over each other trying to point out that Oracle is alienating the open source community from Java. And maybe they are, but until now, for me, it is still undecided.

Yes, Oracle did make Apache leave the JCP. But Apache was the one mixing the JDK7 specs with the fact that they wanted Harmony to be put through the JVM certification. I understand Apache, but I also understand Oracle for wanting to move forward. And for all the negative issues that people like to mention, Oracle also scored some points with me for getting Java on the Mac rolling again (they would score big time with Java on iOS, but that is a different matter and probably biased by my latest Objective-C experiences). And Google with Android, well, would the Android JVM pass the JVM certification? Most likely not, so legally it should not be called Java. And just like Microsoft wasn’t allowed to “abuse” Java many winters back, neither should Google.

For now Oracle is getting the benefit of the doubt, let’s see where they are taking it. The soup usually isn’t eaten as hot as it is served. [freely translated Dutch saying.]

That doesn’t mean that one should be oblivious to the negative points. What if Oracle is leaning too hard on the open source community and they are going elsewhere… Where would they go? DotNet? It’s not like Microsoft is much better than Oracle. PHP? Come on, PHP is just a scripting front-end for a bunch of Unix system libraries. It needs some serious growing up to be able to do full scale software development. Scala? Python? Continue reading “About Oracle and Java”