Latest posts from Codename One.
Blog

jQuery/CSS Style Selectors for Codename One
The ComponentSelector class is a new class that brings the power of jQuery to Codename One. While it is not actually jQuery, it is heavily influenced by it. If you’re not familiar with jQuery, here is the 10 second intro. jQuery is a javascript library, created by John Resig in 2006, that has become a staple of browser-based UI development. As of March 2017, over 70% of web sites are using jQuery. The initial problem that jQuery solved was browser incompatibility issues. It provided a consistent API for most useful DOM methods so that the developer didn’t have to spend all their days and nights fighting with browser compatibility issues. In a way, it did for Javascript, what Codename One does for mobile apps. ...

Bootcamp Parse Bonus and post Materials
I might have been unclear with about the bootcamp materials. It’s possible I implied that the materials will be available later. They won’t… It would be unfair to our bootcamp participants if the thing they pay for is then made available for free. There will be some content that we will make available some content that will be available as paid material (a course) and some content that will be 100% exclusive. ...

New Improved Native Google Maps
One of the primary use-cases that benefits from our recent improvements for native peer integration, is “map apps”. That is, apps that use native maps in some shape or form. This is an extremely common uses case for mobile apps these days. Codename One has supported native maps for quite some time, but (up until recently), they were limited by a couple of factors: Native Widgets Were Always In Front – Since Google Maps were “native” widgets Codename One couldn’t paint over top of the map. Native widgets were always placed in front of the Codename One UI. We could place markers on the map, and draw paths using MapContainer APIs (which were backed by native code on each platform), but we couldn’t, for example, place a Button over top of the map. The Simulator Still Used the Old MapComponent – The simulator didn’t have support for native maps. It would just use the light-weight Codename One MapComponent, which uses tiles (rather than vector graphics like the native maps), and didn’t behave the same as native maps in some cases. E.g. you could draw over top of the MapComponent, which would cause a bit of a surprise if you were counting on that, only to find out after building for iOS that your beautiful buttons were rendered behind the map. I am happy to announce that on Friday we released an update for the Google maps library the resolves both of these issues. ...

Go for it!
I want the bootcamp to sell out fast. Since the number of spots is very limited this should be doable. To make this happen we are adding to the bootcamp: 2 months of enterprise subscription (worth $798) Free access to upcoming & current courses (worth $398) Two one on one sessions with me (you’d be shocked at how much I used to charge per hour as a consultant) ...

Questions of the Week 46
This has been one of the more exhausting weeks for me in recent years. I don’t remember this level of exhaustion since those first few months of launching Codename One. Getting everything ready is the hard part, doing the actual bootcamp is the relatively easy part… Despite all of that we still got some things done this week. Steve reworked the google maps cn1lib to have a web fallback option. He wrote a pretty big post on it but I didn’t want it to get lost in the whole “bootcamp launch” posts so we’ll post it next week. Our update of the week includes some bug fixes and a bit of new functionality that we will cover in posts next week. ...

Build Something Big
__ It’s LIVE! Check out the bootcamp signup here. I’m going to build a new mobile startup within 2 weeks and teach some of you how that is done while doing that. Most people might assume I’m talking about one of those “MVP” cardboard startups… This isn’t the case! We’ll build a real ground breaking app with a server component that handles storage, push and a few other things you wouldn’t expect and I plan to fit the whole thing in a two week time frame. ...

Better Logging
I didn’t post much about new features in a while because we’ve been so busy with the bootcamp that we didn’t have as much time to write the posts or the actual functionality. But a few features/changes did slide in over the past couple of weeks as is pretty much inevitable. There are a lot of small changes so I’ll divide them to avoid confusion. JSObject toString Up until now if you got a callback or had obtained a JSObject and wanted to know what it contained e.g. via: ...

Spring Template and more about the Bootcamp
__ It’s LIVE! Check out the bootcamp signup here. Thanks for all the comments and interest on the previous post. In that post I discussed the importance of great app design and showed some of the cool newish demos I built to highlight the general direction. I also talked about the importance of personal mentorship especially with new/elaborate mobile technologies where everything is different. I also discussed the bootcamp with broad strokes, I won’t go into too many details about it today (I’ll write more later in the week). Just to clarify the general direction, the main focus will be on UI/UX. This means we will build a complete production grade application from the ground up with server connectivity and everything… I’m aiming this as an advanced bootcamp (deep into native interfaces etc.) but I have provisions for people who are new to Codename One. One of the things that really excites me is getting to know you (our community) better on a more personal level. I find it very hard to keep up with all the thousands of people that I’ve communicated with in the past 5 years. Putting faces, voices and some context is something I’m eagerly looking forward to. ...

Questions of the Week 45
We had some painful downtime due the the big Amazon S3 crash that brought down a huge amount of services with it. I’ve been toying with the idea of improving the system so it doesn’t fully depend on S3 (mostly for performance as S3 isn’t as fast as one would expect). But right now we are so busy with “real work” that this probably won’t happen. This weeks update will again replace the push servers with a newer version that deals with encoding the push key on the newer supported platforms as well as support for UWP. ...

Full Stack Java Bootcamp
__ It’s LIVE! Check out the bootcamp signup here. Thanks again to everyone who answered my questions. I got tons of valuable feedback on our work & what you would like to learn. It was super helpful and I’m grateful to all of you as you are literally shaping how this bootcamp (and the future of Codename One). I’m sorry if I was brief in some of the thank you emails, it took some time as I wrote them all personally and worked well into the night the other day. ...

Push (Almost) Everywhere
Just last week I mentioned that we wanted to get push working on Windows & we’re pretty thrilled to announce that it’s available already… This means that we now support push on pretty much any major device with the exception of the Safari web browser. As part of this change we also decided to change the push keys for the JavaScript push implementation so I suggest waiting for the next update before you push out a new version of your app. The crux of the issue was that the web push key included illegal characters for the web so the fix when using the client side send push API’s is to encode the arguments to the server. ...

TIP: Select Table Row
Before we go into the tip I’d like to start with an apology to all the people I didn’t get back to. Earlier today I sent an email asking for help with the upcoming Codename One bootcamp. The anticipation and resulting email flood took me totally off-guard as I expected a couple of dozen responses in the best case scenario and got much more… I started answering as fast as I could and getting back to people I already answered in the back and forth but quickly this became untenable and I’m seeing my backlog pile growing. Chen and others around here tried to help but I prefer to do this personally as I’d like the feedback to sink into my brain not as an afterthought as it is very valuable! ...