Live from TSS-JS – Mobile Development with Mark

Currently attending “Comparing, Contrasting, and Differentiating Between Mobile Platforms” by Mark Spritzler, a fellow CodeRanch moderator.  The presentation is in part an open discussion with the audience of what people have tried and works well in the Mobile environment.

1.  What is out there?

  • Android OS (Java)
  • Apple iOS for iPhone/iPod/iPad
  • Web applications with custom UI for mobile applications.  CodeRanch currently offers a mobile web version of the website
  • J2ME (not common)
  • BlackBerry (custom Java)
  • SymbianOS (C)

2.  Android OS Review
Built by Google and uses Java and can run Flash.  UI built with declarative UIs using XML primarily and supports visual tools such as Droid Draw and/or Interface Builder.  MVC-like architecture with view as XML, and control/model as Java classes.  The API is quite open so there’s a lot of ability to customize for developers.

There is currently a large variety of Android devices so splintering of the code base could be in the future.  Some devices cannot upgrade the Android OS, leading to permanent branching of code base.

Also, Android requires a lot of manual work to integrate with a database, such as SQL Lite, whereas Apple iOS has this built in.

3.  Apple iOS Review
Built by Apple and uses Objective-C, and cannot run Flash.  Developers must manage memory manually.  The API is completely proprietary and there are limit tools for developers.  For example, the developer must have a Mac and use an xCode.  Closed APIs but Apple promises stability (although it did change in iPad with split/view feature).

Dicussion on Apple’s strigent application approval process followed.  One participant commented that they waited 1-2 months for Apple to approve it.  Apple has also stopped approving ‘pointless’ apps.  I asked Mark if he thinks the delays are worth the improvement in quality, to which he replied that it does lead to better applications.  He also informed the audience that Apple wants you to use certain visual controls in particular manners to help build a consistent UI, and may reject applications based on improper usage.  Apple sometimes comments on why applications are rejected but not always.

4.  J2ME Failure Review
Idea was to develop using Java and runs on a variety of devices.  One of the major problems is Sun certified J2ME mobile phones that didn’t properly or fully implement the spec.  Also, lead to splintering of code base and very inconsistent results across devices.

5.  Native vs Web applications
Web applications have greater reach since they can run on many devices, but have weaker performance and require the developer to self-promote them.

6.  App Generating Frameworks
Build mobile applications from predefined templates using a CMS system often entered in a web browser, such as MobileRoadie, but it is a paid service.  Builder frameworks (often open source) that generate mobile applications based on existing code including Appcelector, Rhomobile, PhoneGap.

Write once and run on many devices through generation.  They may have limited functionality since they use a subset of features available in the language.  Multi-touch is also very limited in Android over iOS.  HTML5 does support location-aware so it can help in application generation.

Conclusion
Mark ended the presentation with an open discussion asking people to share their own mobile development experience.  He pointed out that there a lot of pros and cons to using different mobile platforms and mobile devices, and you should consider the resources on hand when deciding how to proceed in development.

Ibm’s enterprise java for the future – the server side jack symposium

Enterprise java for the next decade – IBM’s take on one possibility for the future
Facts/industry trends

  • hitting the limit of Moore’s law, can add more CPUs , but not make existing ones significantly faster [surprised they didn’t bring up threading here]
  • Memory still rapidly increasing, disk capacity is growing, but not as fast
  • Hardware is getting smaller, cell phones/smart phones are now real computers, they aren’t special purpose operating systems anymore
  • Projects are becoming more complex
  • Data transformations more complex, new formats
  • Amount of information and # devices dealing with data rapidly growing – ip v4 full, RFID, gps, etc

speculation

  • More software will mean more jobs. But jobs I’ll require new skills for enterprise software
  • Need to simplify the enterprise platform with focus on making easy things easy and hard things possible
  • Class loader system to complex/ambiguous for the future
  • Number of technologies for a beginning JEE developer is too overwhelming and we keep adding to it
  • Don’t need two packages with same name for metadata [how balance backward compatibility without blowing up complexity?]. Eventually will have single definition with ONE XML file that controls metadata, similarly for annotations
  • Don’t think one injection model will be enough, but still need to collapse from what we have now
  • Expect concurrency and async workflows to change so defining at higher level
  • Brought up getting rid of the stuff that has been deprecated for a long time like BMP [sun never reveled anything, will Oracle?]

At this point I stopped taking detailed notes on the APIs. The gist of it is that the IBM speaker organized the APIs into groups and called the higher level one simpler. It is if you can get rid of what is there today and replace it with a general API. Of course 10 years is a long time so it isn’t out of the question
Ok back to hardware, it’s getting interesting again

  • Think laptops sill become peripherals to our phones. [interesting concept, Mac is already on the way] Like a monitor and keyboard for the same environment other phone, but with more processing power.
  • Data analytics will be more important. More parallelization and more devices yields more crosstalk and more data to sift through
  • Cloud will take care of non functional requirements
  • Apps are going to be about code, dependencies and binding rather than a self contained unit. The shared modular environment will handle the rest

future known facts

  • JEE 8 is going to attempt a modular programming environment [how does this make it less complex?]

Gossling at the server side java symposium

So apparently the wordpress iPad app only let’s you have one blog post In draft form at the same time and i lost what I wrote earlier. Rewrote this from memory

Highlights

The language

  • wishes more language enhancements got into java 7
  • amazed how many people got stuck at gave 1.4

The Cloud

  • plugged netbeans and glass fish even though doesn’t have to anymore
  • A redeploy of amazon takes a few minutes because restarting clean. “by contrast” netbeans only takes a few seconds [netbeans is local]
  • amazon cloud expensive for baseline use. Suggesting having internal cloud on Eycalptus and using amazon for spillover

The Web

  • Is a social experiment. Which is not about tech

Other things

  • Hudson is now Jennings and owned by Cloudbees
  • Ended with a shout out to the coderanch community being participatory
  • I had never see Gosling speak live, he has a good stage presence