“They’re starting to collaborate without me” — Corber’s Alex BlomMeet Corber, the CLI that improves the Cordova experience for Ember, React & Vue developers looking to go native.
Scott DooleyBlockedUnblockFollowFollowingMar 4Photo by Jay Wennington on UnsplashAs ancient tech-lore predicts, 2019 is set to be the year of the mobile transpiler.
Well, at the very least, it is beginning to feel like every developer is getting into the game.
For starters, Flutter has broken into the mainstream for iOS and Android developers and F# developers are getting into mobile with tools like Xamarin and Fable.
Meanwhile, Scala devs are making friends on Android.
Particularly, while native app performance trumps PWAs.
So, is Corber the solution?To find out, I Skyped Alex Blom (the lead maintainer of Corber) about what Corber does and why you should use it, then spent way too long trying to transcribe our conversation.
We also talked about the story behind its development, staying motivated on open-source projects and a burning issue — the role of doggos in tech.
Whether you’re writing with React, Vue or Angular etc.
, it provides a way to compile the work that you’ve already done into a native app for iOS or Android.
On top of that, it provides a way to bridge to native plugins, so your app can access device features like a camera or compass.
This is done with the premise that some apps need to be native, simply because you get better performance and can access deeper functionality, like file systems, push notifications etc.
To give some background, Corber is an abstraction on top of Cordova.
It originally started as a project called ember-cordova, where I wrote bindings directly into Ember.
js — the framework I was using at the time.
And this is what has driven the change we went through over the last year… and why our messaging is a little funny at times.
How easy is it to get started with Corber?It’s something that’s always improving.
On day one, you kind of already needed to know what you were doing with mobile for this to work.
Nowadays, I don’t think that’s the case.
Sure, there is a little bit of setup you have to go through that we’ve documented — which unfortunately we can’t automate.
But the philosophy I’m working towards is where we can bundle a package and do things on your behalf, that’s what we do.
A good example is from a few weeks ago.
We’ve had hot-reload working on mobile emulators for a while.
Two weeks ago we got it working on iOS devices as well.
So you can plug in your iPhone, make the change within the app, and within 1–2 seconds you’re seeing the change on your phone.
After all, we know how it goes — a lot of developers kind of sit in Chrome tools and poke something with a stick and see if it looks good or that it’s working the right way.
We’re trying to provide an equivalent way to do that with mobile apps, with all your plugins still working.
This way you can write some code and start accessing the camera, realise it didn’t work, and make a change without going through the process of rebuilding, reinstalling or reflashing.
They might be stuck asking how would I even get something running on my local device?We’re focused on changing that by making the setup seamless and Corber easy to understand.
Much of the complexity in developing for mobile, especially if you’re new, comes from the differences in terminology.
A lot of the time, concepts are similar on iOS and Android, but the words used are completely different.
So we’re also going through a process of trying to normalise what we call things and using that for both platforms.
So as a developer, you can just get going.
How did Corber come to be?The project came out of the consultancy I work for (Isle of Code) where we do a lot of mobile-based work.
We released our own set of bindings called “ember-cordova”, which were made for Ember developers building Cordova applications.
People forget that Cordova is ten years old.
It’s not necessarily that it’s bad, it just doesn’t really fit into everything that we’re trying to do today and the way we’re trying to do it.
So you can imagine, conceptually, it is just very, very different.
So, to begin, we released our own set of shims and cl lines in Ember to make that an easier experience for devs.
Once we’d done that, we realised that there was actually a lot of interest in the Ember community for what we’d done.
From there, I started cleaning up a lot of the tooling and thinking, Okay, so how can we improve dev flow?The first extension released was live-reload — where you can make a little code change and quickly see that reflected in your app.
This was about 1.
5–2 years ago now.
This coincided with when we started using frameworks other than Ember a bit more.
What have you learned from going open source with this project?We see what happens over time with any project.
You have the larger set of people who download it and just use it — you’re happy about that.
And you have the smaller set of people that have delivered a couple of bug fixes or features they thought would be a good idea — and that’s fantastic.
Then a few months later, they fade away because they’ve been using this on one of their projects and now that project is finished or that project is mature — so they don’t need this as much.
Over time, one group of people evolves that are pretty regularly contributing to the project — and we see them come up every few months.
They are actively fixing bugs, and a couple of people in our support channel are responding to people’s questions.
So we’re actually going through a process at the moment, asking how we can bring all of those people together, but they’re starting to collaborate without me.
I think a lot of people go open source without knowing why they want to go open source.
Which is maybe a problem for them later.
For us, it’s been more about setting expectations and the amount of work that you have to put into planning and figuring out what you’re doing well.
That was certainly a blind spot, especially if it’s something like this because you have a lot of developers at different skill levels and backgrounds.
Some of them are using Windows, some of them Mac, some of them have only written Java before, and they're all trying to make these mobile things.
There’s a breadth of things that we need to know about, and frankly, for me, there was a period of just being comfortable, saying publicly on an issue, “I have no idea what you’re talking about, I’ve never used that before, does anybody know?”The first few times you do that, you’re not super comfortable doing that.
Even when people file issues for the first time, you’re trying to be incredibly helpful, putting a lot of work into trying to replicate their problem and over time, you realise that just doesn’t scale at all because I’m spending 30–50 minutes trying to see if someone’s issue is real, or not.
So now we’re much harsher.
You look for five minutes, and if it doesn’t make sense to me, I’m not going to close the bug.
But it’s on you to come back to me with exactly what steps I need to take to get here.
And if I can’t follow those, then I’m sorry.
I guess I’m saying in a long way that process — setting expectations and communications — matters a lot more than the code at this point.
For us, we’re at an interesting point where the code has been pretty stable for a while.
Sure, we’re always wanting to refactor it, make changes to it, but it’s fundamentally been doing what it set out to do for the last 1–1.
5 years, and now we need to improve that first-time user experience.
I shouldn’t say first time user, because it’s open source, but I have a feeling that there are a lot of people who like the idea of something like this.
Yet, we still haven’t put enough work into documenting why you should do it, under what circumstances you do it and exactly how you should get started.
What has kept you motivated with the project?Well, you always get your trolls.
Which at some point you just accept that you’re gonna fuck with them.
And that makes it fun.
But, one of the nicer things that has been happening for the last couple of years now is that you go to a lot of conferences — for me, the big one is EmberConf because we started in that community — and every year you go, you’re getting more than a couple of people at the side showing you things they’ve built with the tool.
Frankly a lot of the time, they’ve put a lot more work into it than I do.
These things are polished.
I’ve seen hospital applications, gaming apps, rental applications and so on.
It’s really nice to see all the different things people have built with these compilers.
You ask them “do you know Swift, Objective-c, Java?… and “What would you have done otherwise?”.
That is nice to see.
corberDocumentation for corber, a CLI for packaging hybrid Cordova/Crosswalk/Phonegap apps with Ember/Vue/Webpac/Glimmercorber.
ioWhat’s your dev setup?For the most part:MacStandard TerminalVIM — the whole timeI get distracted when my code starts to autocorrect for me.
I think just because I learn to code that way, that’s what I’m comfortable with.
If I’m doing mobile, for work, then sure:XCodeAndroid StudioWhat do you listen to while coding?Music on and off.
Spotify playlists!Pattern breaking is importantBackground ambienceCan doggos help fill the tech skills shortage?Probably.
I mean they’d be less dick-ish about a lot of things, that’s for sure.
Cheers Alex! — Alex will be speaking on Day 2 of FullStackNYC in May.