The App development blog of Simon Monk, CTO of Meme IDE the cross platform development tool for Android, WM and IOS apps. free download from www.memeide.com

Friday, 2 September 2011

Standards in Mobile Development

When will mobile operating systems achieve a universal development platform?

The generally accepted answer to this question by seasoned developers is around the same time that Windows 7 and OS X become open source. There is far too much technological pride and 'not invented here' syndrome floating around for that to happen any time soon. In any case, excessive standards can stifle innovation.

HTML5 offers such a promise, but the standard is immature and Microsoft is still basing its Windows Phone development on Silverlight. Kevin C. Tofel at Gigaom highlighted some telling stats In any case, many suppliers of the rugged phones that are still the mainstay of business solutions are resolutely sticking with Windows Mobile 6.5.


Developers that I speak to have doubts about writing full featured apps using web technologies. Javascript is still trying to shake off its 'script-kiddie' reputation. For some developers, the only acceptable way to write a mobile app is to use native development tools.

If the desirability for standards across mobile platforms is largely motivated by the desire to simplify the process of creating cross-platform apps. then maybe this same goal can be addressed, not by standardizing all platforms, but creating an application development layer that sits above the native development tools generating native projects that are then compiled by the platform specific tools.

Meme IDE is such a tool. It has platform specific screen designers and a platform neutral programming language (Meme Script). The platform currently generates native code projects for Windows Mobile 6.5 and Android 2.1, with iOS and Blackberry on the way.

Something to think about!

Simon Monk    @theappmonk


kick it on DotNetKicks.com

Thursday, 1 September 2011

Meme IDE SQLite Database Interface

Simon Monk CTO of Meme IDE
 Today's release of Meme IDE 1.12.0 will include an Interface to the SQLite database bundled with Android.

We ended up with what we believe is a simple but powerful interface that just adds three new library functions to Meme Script.

To put this into context, Meme Script already has the store and retrieve commands that will persist small amounts of data contained in a variable by serialising it. However, for some applications, that is not enough and you need a proper database.

On a mobile app, databases do not tend to have a complex schema. A typical example might be of a parts database for a service engineer. There may only be one or two tables, but they might contain a few thousand records. It is quite likely that an app would be deployed with an initial database, to which occasional incremental updates would be applied.

In my experience, such apps are far more about reading of data than writing of data. As such it is important to have the ability to perform ad hoc queries in the form of SELECT statements to retrieve data, as well as operations to modify the database and efficiently bulk-load a database.

Since the Meme IDE has a user interface for defining record structures, it is important that when we run a query against the database we can put the resultant data into record structures that we have previously defined.

In our design session for Meme IDE's database interface, we explored a number of options including complex Meme Record / SQL table mapping as well as various complex functions for manipulating the data in record form. Eventually, we ditched it all in favour of what we think is the simple and elegant interface described below:


sqlScript(databaseName:String, sql:String) : void


The first function is intended for bulk loading of a database with data. The first argument is the name of the database. If the database does not exist yet, then it will be created. The string containing SQL can contain any valid SQL that is then loaded up into the database. For instance, the string would typically contain a series of table creation commands followed by a whole load of insert commands.

Typically the SQL supplied will be in an embedded file in the app that can be read using retrieve or fetched using a web request.



sqlQuery(databaseName:String, sql:String) : [](Record)


The sqlQuery function performs an SQL query on the database. This should be a SELECT statement. The sqlQuery function should always be called in an assignment. For example:


var contacts : Person[];
contacts = sqlQuery("mydatabase", "select name, tel from person");

This allows the Meme Script compiler to establish the mapping between the Meme Script record and the SQL table being used.

The mapping of field names between record and database table is by name. So in the example above, if 


the record has attributes of name and tel then these will automatically get populated.

For indirect mappings, you can use the SQL AS keyword, for example:


var contacts : Person[];
contacts = sqlQuery("mydatabase", "select name, tel AS telephone from person");




sqlExecute(databaseName:String, sql:String) : Integer

The final database function is intended for use in modifying the data. The SQL will typically be an INSERT, DELETE or UPDATE command. 

The Integer result will depend on the operation. 
For an INSERT, the return value will be the ID or the new row inserted.
For a UPDATE or DELETE will be 0 for success or -1 for failure. This should really be the number of records modified, by unfortunately SQLite does not support this.

That concludes this blog entry. It just remains to say that there will be an example app and further information made available shortly after the release.

We always welcome any comments or ideas for improvement.
Find me on twitter @theappmonk
kick it on DotNetKicks.com

Thursday, 4 August 2011

Meme IDE second tier tutorials

We are now moving onto our second tier of tutorials, starting with 201 explaining the basics of getting your Meme App to communicate with web servers.

This tutorial is accompanied by an example Meme IDE project... that you can download here 

Monday, 4 July 2011

Meme IDE Competition Standings

Final standings of feedback incentive... congratulations Melco.
Counting ended 18th July.

Wednesday, 29 June 2011

Feed us feedback and win $250 of Amazon Vouchers








This week we are starting a feedback competition awarding the user who provides the most feedback on our IDE an Amazon e-Voucher for $250.

As Meme IDE has now been out for a couple of weeks now and we are continuing development to make it better, this is where you can influence its development and get something out of it…
How do you submit feedback?
There are numerous ways you can submit feedback that will be counted…
  1 - Direct emails to – feedback@memeapps.com
2pt for each relevant comment stated
2 - Post in our forums -
General post/ new question, 1pt
Bug notification, 2 points
Feature request, 1 point
3 - Complete our short survey, 4 points
(leave your email connected to your meme account in the comments) 
4 - Write a review/article of meme IDE on your blog/site and send us the link- 10pts
This incentive will run for 3 weeks with counting concluding on the 18th of July, so get submitting!
The feedback table for beta users can be viewed on our homepage and will be updated frequently. The latest version of Meme IDE is available for download here.

Happy Points Gathering

Thursday, 16 June 2011

Meme IDE is one of several cross platform integrated development environments allowing application developers to build and develop applications for Windows Mobile 6.5, Android and iPhone based around an Eclipse framework. 
 
Where this one differs is in its unique programming language, MemeScript. A cohesive language constructed of elements of other main languages C#, C++ and Java. Taking the best of what they have to offer and removing everything else to make app development easier, simpler and quicker .
 
Launched in beta the IDE allows mobile app developers to build applications for Windows Mobile 6.5 and Android 2.1+ , the IOS platform will be added in the full release with plans also intended for the inclusion of Blackberry.
Meme Apps also offers cloud-based services for packaging, testing and distributing software applications developed on the Meme IDE platform, these will become available in the products full release at the end of the beta period along with paid for business support options. However this beta release is free for users to download via the www.memeapps.com website.

In partnership with Momote Ltd, Meme Apps was founded in 2010 by experienced Mobile Application experts. The team includes business and technological leaders with a proven history in developing, designing and deploying mobile application technologies and support.

Tuesday, 14 June 2011

latest beta update available

The latest beta version of Meme IDE is available for free download here.

In these early stages of beta we are frequently releasing updates, below are this weeks fixes
------------------------------------------------------------------
Defects fixed in MemeIDE release 1.5.0 Dolomite (9th June update)
------------------------------------------------------------------

Modified validation of Records to start with a upper case letter, records are also validated against Meme Keywords.

Modified validation of dataspace variables to start with a lower case letter, dataspace variables are also validated against Meme Keywords.

Android Checkboxes now Set state on a specifed variable.

Android/Windows Mobile Checkboxes now support on-change events.

Meme Core function setSelection for List controls is now compatible with both Android and Windows Mobile platforms.

Form Name validation has been modified to disallow spaces in name property.

Windows Mobile platform generation now handles complex conditional if statements.

Android build version has been updated to api compliance level 7 (2.1).

Thursday, 2 June 2011

meme ide - end to end tutorial online!

 
103 the end to end 'expenses example app' tutorial is now uploaded and available here
It is an indepth video that will guide you through every stage of your app build.