Latest posts from Codename One.
Blog

Questions of the Week XXV
We released an update a day early to deal with some regressions we had related to minor method signature changes triggered by an overhaul of pre-released versions. Other than that this week has been a bit uneventful in terms of our work. On stack overflow things were pretty standard: How do I import an existing android studio project to eclipse so that it is native and becomes a codename application? We currently support NetBeans here but this is a bit problematic regardless ...

Round Border in the Designer
We introduced the new RoundBorder API a couple of weeks ago and it’s already picking some usage. But to really take off it needs to be within the themes, starting with the next plugin update the border section of the designer tool will include the options for round border. This is a bit confusing since we already support a rounded border type. The rounded border type is a rectangle with rounded corners where the round border has completely round sides or appears as a circle. ...

Tutorials & Resources – Build Apps with Java for iOS, Android etc
There are many Codename One resources for building native mobile apps but they are often all over the place, in this blog post I’ll try to concentrate the best resources for people who already know Java and are looking to pick up Codename One. If you don’t know Java yet, please check out this post where we discuss resources for beginners to learn Java. Written Docs and Tutorials • Create an Uber Clone in 7 Days – Even if you don’t purchase the full book, the free chapters available to download will help you get started quickly. • Developer Guide – if you haven’t read the developer guide you should! Notice that it also comes in a PDF. • JavaDocs – our JavaDocs include some hidden features such as the component gallery & layout gallery. • Sviluppare app multipiattaforma – Indice del corso introduttivo – Italian language free course for mobile cross-platform development by Francesco Galgani. • Port an Android app to iOS (iPhone) – a step by step guide on porting a real world Android app to Codename One and getting it onto all the major stores. • Chat App Tutorial – this six part series covered many ideas in Codename One including social login (Facebook, Google) IM style interface etc. • Using the new GUI Builder – this tutorial starts by reviewing the differences between the old and the new GUI builder followed by a review of building a simple app. • Working with native maps – using Google Maps in your app. • PSD to App Revisited – this is a remake of a great video tutorial from Steve Hannah (see below) where he covered the process of taking a Photoshop PSD design and making the app look like the PSD. The results are stunning. • Integrating 3rd party native SDK’s – this is one of our most ambitious tutorials it included 3 parts. Part 1, part 2 & part 3. • Websocket Support – this tutorial covers the cn1lib for websockets • Create a Gorgeous Sidemenu – 5 minute video & text tutorial on the creation of a good looking side navigation interface. • Introduction to In-App Purchase – this is a part of a series on in-app-purchase covering also Non-Renewable Subscriptions & Auto-Renewing Subscriptions. • Connecting to a MySQL Database from Codename One – includes two versions the second uses Java on the server side while the first uses a PHP backend and is arguably simpler to setup on the server for some cases. • Using Icon Fonts Such as Fontello – in this tutorial we review icon font usage in Codename One. These are very useful for resolution independent images. • Avoiding Lists – A common question is how to use a “List” in Codename One. In this tutorial we explain why lists in Codename One are problematic and the strategies you can use to create a list interface. • Understanding the Table Component – this tutorial is pretty self explanatory. • Understanding device density – in a tutorial written for “back to the future day” Steve covers the nuances of device densities. • CSS Support – in this tutorial Steve talks about the CSS support he built for Codename One. There is also a followup article on new CSS capabilities. • Dynamic Autocomplete – in this tutorial we discuss the usage of an auto-complete text field and how we can use a webservice to provide suggestions to users. • Local notifications on iOS & Android – covered the support for firing local notifications when the app is in the background. • Deploy the same app multiple times – in this short tutorial we cover the process of making an app template that you can redeploy e.g. to sell similar apps to multiple customers or build a demo/release version. • Building Cloud-powered Native Mobile Apps with Parse.com – while parse was discontinued, parse4cn1 is still going strong with 3rd party parse alternatives. • Shrinking sizes & optimizing – how to reduce your application size. • Automating releases – this post covers the enterprise grade continuous integration support. • JQuery style selectors – use selectors to manipulate specific components. • Setup a Codename One Project from Git – covers the process of converting a git project to a local project. ...

Cross Platform Mobile still Better than Naive in age of Flat Design
A few years back I wrote an article for O`Reilly covering the advantages of cross platform over native OS code. Almost 3 years have passed and a lot has changed in our industry so I wanted to re-examine how this impacts my perspective on cross platform vs. native. I can sum up the sentiment in a single sentence: “Cross platform is both more essential & more practical than ever before!”. ...

Deploy the Same Mobile App/Template Multiple Times
We often build one app and sell it to multiple customers. After all, most customers ask for similar things with minor changes. E.g. if I build a restaurant app and then sell it to one establishment I can then resell it to another with almost no change at all… Another common use case is the demo or free version of a paid app, you want to reuse as much of the work as possible without maintaining two code bases. ...

Questions of the Week XXIV
We’ve had a very challenging week with a lot of backend work for some enterprise customers so we didn’t get as much done as we do most weeks. I can say that I’ve seen some of the apps in the pipeline and I’m very excited about the things to come… Today’s update includes many bug fixes on Android, UWP but not much in terms of new features. On stack overflow things were pretty standard: ...

Codapps.io is back Java on Mobile from Scratch
We’ve discussed codapps.io before, it’s a MOOC (online course) that allows you to learn Java programming and uses mobile/Codename One as its vehicle. Our current documentation and tutorials can be quite intimidating to a person who is a complete Java newbie so this course is quite helpful in bridging that gap. I think learning GUI programming is probably the best way to learn programming as it lets you “see” the results instantly and experiment. ...

Why we no longer Attend JavaOne
I love going to JavaOne, I used to do it every year and it’s loads of fun. I’ve been speaking on a regular basis at JavaOne since 2008 and got a rockstar award a while back. Two years ago we purchased a booth to promote Codename One as well. Last year we skipped the show and it has been so great we decided to skip it again. While JavaOne is loads of fun it does nothing to the bottom line even if you have a booth in place. We had many meetings, talks & introductions. These resulted in very little in terms of revenue or traction shift. ...

KitchenSink UWP
Historical note: Codename One’s UWP target was discontinued in release 7.0.229. This post is preserved for historical context only, and its build/setup instructions no longer apply to current Codename One projects. The latest plugin update includes a new kitchen sink version that includes quite a few bug fixes, enhancements and a new side menu design that looks much better. We also got the demo published on the Windows Store thru the UWP port which isn’t so much a testament to the maturity of the port as much as it is to the limited testing done by Microsoft. ...

Merged Peer, October Vacations & India Trip
Last week we merged the new Android peer code into the main branch. That means that we can no longer support the android.newPeer flag as all non-versioned requests will use the new peers. This is a good thing as it will allow us to focus on one implementation moving forward. We would like to bring the new peer implementations to other platforms but so far this has proven itself somewhat challenging especially with our resource constraints. Ideally we wanted to have this for 3.6 but it’s possible that it will get pushed back all the way to 3.7. ...

Questions of the Week XXIII
This has been a busy week with new features and some interesting announcements. We are releasing a plugin update today with a lot of fixes especially to the GUI builder which should be far more stable. NetBeans announced they will be moving to Apache and we volunteered to help. We’ll post some thoughts about this next week. Java One is coming back, again we chose not to go. I wanted to write a bit about it but didn’t find the time to put down my thoughts. Overall I love Java One, it’s loads of fun… But flying there from another continent is probably not the best use of our time/budget. ...

Why we don't Support the Full Java API
This is something we run into every week. A new Codename One user asks why “feature X” from Java isn’t supported. In this post we’d like to explain the “bigger picture” or why less is more… Supporting the full Java API in Codename One would be a mistake that will lead us down a problematic path. It would cost you a great deal in functionality, performance, portability, stability and more! ...