Thursday, 6 December 2012

Android Development

I am beginning Android development
This is useful for learning about the Android operating system ...

www.vogella.com/articles/Android/article.html

AppMobi

Someone asked me to use Appmobi a couple of months ago. I hesitantly installed it on my second PC, fearing trojans on my main comp. Looking at the dev kit, I found it interesting, I could see they did some impressive work on the editor environment - it runs a local server on your computer from a .jar file, and then starts the development environment which is based in javascript, on your browser. I had to have chrome open (it installs in chrome) before it would run.

So far so good. The environment gives you a code editing view and an emulator view. The emulator view contains several popular devices, including iPad, iphone, android devices, windows mobile devices and laptops. So when you run your program in the emulator you can reload the app with the focus set to various other devices to see how it will look when it is built.

Now the development environment is pretty interesting. I found the javascript interesting, however I got the distinct impression that it was not going to be helpful if I did not pay for the Game package that contains the drag'n'drop game development kit. I was right, however I was able to start up the demo games (named DirectCanvas and Furious Fowl, a parody of furious birds I assume)  and the javascript was certainly not for beginners. In fact I think certain things were more difficult than necessary, and they had worked more to impress the user with their code than to actually be helpful. So as a matter of fact I had to dig around for needed features, like the touch screen API. The rest of the setup was awkward. I really don't think javascript on html5 was designed for applications, and in fact the big problem is the User Interface Coherence, by that I mean that a UI based in html5 running a javascript suffers from the fact that the UI is the root of the application, and the JS is based upon the document object model of the web page, not that the web page is spawned by the script. So the temptation is to have 1 or 2 opening pages and then to do everything in html5 canvas. This is how I started up, my first page was a dummy page with some information, then I went straight into a constantly running javascript. The problem in this case is that I want my JS to spawn different pages and to maintain a data structure throughout (i.e. username, user data) , so to do this I would either have to design a page that contains all the divs for every page, or to design the pages in JS, and then of course you would want meta data (back to the divs).

In other words, if you change pages, your script dies and you might need to save a JSON containing information that is global to the app - all this seems over complicated and is perhaps a form of Kludge (over complicated solution).

Well that was all good, I found I was able to dig up the function for the touch screen easily enough, and the canvas was snappy and responsive on the emulator. Well the 3D tests I tried did not work, so perhaps they need to rebuild webkit sometime. That was a disappointment.

The problem occurred when I tried to test my app on a device. There where two options, push to the cloud and test on wifi, so I tried to test on wifi - first appmobi asked me to browse to a web address on the mobile device and then follow the instructions. I tried to follow the instructions to install an appmobi test app and the program failed to install, I was redirected to a page that showed an error message " '/' not found". So I refreshed the first page and this time I was prompted for my developer account login details - I entered my username and password 3 times before I realized - I don't have a developer account.

So ... appmobi is fun and intuitive at first, but when you really think about it, the bells and whistles don't compete with a good 'ol native program, i.e JNI program for the Android.




Thursday, 22 November 2012

OpenGL Bug Hell

OpenGL is one of the finest rendering API's available, the other being Direct3D.

For anyone who ever used OpenGL, this is worth reading

http://www.opengl.org/wiki/Common_Mistakes

To avoid mindless trial and error hacking ... 

Tuesday, 20 November 2012

...Busy

Well I was busy last year concentrating on a project that made heavy use of virtual memory, this year I have been busy looking at open source, moving from project to project to find inspiration, I still don't have a goal as such, however I am very interested in

Blender
FreeCAD

for all things concerned with Computer Aided Design. Blender seems to be quite difficult to learn, and as a consequence the first simple steps towards CSG were easier in FreeCAD. I would like FreeCAD to look (and feel) a lot more like Autocad, however I understand the Open Cascade API that it was built on is difficult to use, being intellectually demanding.

The other software that I have been looking at includes

WebGL
HTML5
Javascript
Android Development
Cross platform phone development

I'd still like to get my own game done on one of these platforms, I know it is almost easy now using an engine, but I bumped into the old problem of content development. I think this is why I became interested in CAD. I was certainly looking at blender for inspiration on User Interface design.

I also absolutely use Python ... I downloaded a package called Pythonxy over a month ago and set up the control systems toolbox (an achievement worth mentioning) . I am really impressed by the power of MathPlotLib combined with Scipy (scientific python package) and Numpy (numeral python package). I can actually run my old control systems studies in python and see the result plotted on screen.


Sunday, 11 November 2012

My idea, already made !

http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page

I even thought of the idea of python scripting too !

I was using Opencascade
with WxWidgets and my google efforts brought me to this!