[success story] eMCUBE

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[success story] eMCUBE

NorbertHartl
We are proud to present a little success story around amber. We did a mobile application for finding and renting electrical powered bikes and cars. It is german only only for the use in one german city called Wolfsburg. But nevertheless it is an amber app and it is available in itunes store [1] and google play store [2]. There is a web site as well [3] that is also done with amber.

The technical description:

The project is done using a combination of

- cordova [4] providing the native shell (ios, android) for the web project
- ionic [5] providing the web framework which is optimized for mobile use. Ionic uses angularjs
- amber providing the controllers and services for angularjs

This project has been a great experience how web based things can be done using amber. Most of the UI logic, the business logic, business model and backend interface are done in amber. The code of the model and the backend interface is shared between the native app and the web site. Besides the git struggles (I've wrote a mail about that) the process workflow from checking out, adding components, using amber serve to develop, emulate the app in ionic up to the jenkins integration that builds, package and signs the application turned out to be quite good.

Actually it does make sense to develop mobile web applications which wasn't the case two years ago.

--
You received this message because you are subscribed to the Google Groups "amber-lang" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [success story] eMCUBE

Herby Vojčík


Norbert Hartl wrote:
> We are proud to present a little success story around amber. We did a
> mobile application for finding and renting electrical powered bikes and
> cars. It is german only only for the use in one german city called
> Wolfsburg. But nevertheless it is an amber app and it is available in
> itunes store [1] and google play store [2]. There is a web site as well
> [3] that is also done with amber.

Great! Much more great in that this is the mobile app. I was a bit
skeptical whether Amber can be used for that.

>
> The technical description:
>
> The project is done using a combination of
>
> - cordova [4] providing the native shell (ios, android) for the web project
> - ionic [5] providing the web framework which is optimized for mobile
> use. Ionic uses angularjs

I tried to make Angular and Amber work together in the past, but after
some trying I felt like it would be too hard. The scope notion of
Angular that uses native JS prototype inhertiance and the opinionated DI
seems like obstacle too big for it to be feasible.

Can you let us know how you were able to actually overcome those?

> - amber providing the controllers and services for angularjs
>
> This project has been a great experience how web based things can be
> done using amber. Most of the UI logic, the business logic, business
> model and backend interface are done in amber. The code of the model and
> the backend interface is shared between the native app and the web site.
> Besides the git struggles (I've wrote a mail about that) the process
> workflow from checking out, adding components, using amber serve to
> develop, emulate the app in ionic up to the jenkins integration that
> builds, package and signs the application turned out to be quite good.
>
> Actually it does make sense to develop mobile web applications which
> wasn't the case two years ago.
>
> Norbert
>
> [1] https://itunes.apple.com/de/app/id997752041
> [2] https://play.google.com/store/apps/details?id=de.innoz.emcube&hl=de
> <https://play.google.com/store/apps/details?id=de.innoz.emcube&hl=de>
> [3] https://www.emobilitycube.de/
> [4] https://cordova.apache.org/
> [5] http://ionicframework.com/

--
You received this message because you are subscribed to the Google Groups "amber-lang" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [success story] eMCUBE

NorbertHartl

Am 29.05.2015 um 14:07 schrieb Herby Vojčík <[hidden email]>:



Norbert Hartl wrote:
We are proud to present a little success story around amber. We did a
mobile application for finding and renting electrical powered bikes and
cars. It is german only only for the use in one german city called
Wolfsburg. But nevertheless it is an amber app and it is available in
itunes store [1] and google play store [2]. There is a web site as well
[3] that is also done with amber.

Great! Much more great in that this is the mobile app. I was a bit skeptical whether Amber can be used for that.

I had the opposite opinion. I always thought it is a good idea to use it for mobile apps but I had doubts about web client because of the size of the the.js. In mobile apps this problem isn't present because you deliver the js file with the native app. But nowadays the size of amber is really not big compared to other web stuff. Speed wise it is completely ok to use it. Angularjs was the big problem here.

The technical description:

The project is done using a combination of

- cordova [4] providing the native shell (ios, android) for the web project
- ionic [5] providing the web framework which is optimized for mobile
use. Ionic uses angularjs

I tried to make Angular and Amber work together in the past, but after some trying I felt like it would be too hard. The scope notion of Angular that uses native JS prototype inhertiance and the opinionated DI seems like obstacle too big for it to be feasible.

Can you let us know how you were able to actually overcome those?

I didn't even try :) My approach was to make it work so we don't have to do much javascript. So in angularjs we left the templates/views untouched. The html markup is pure plain angularjs. Each controller is a small adapter that on the one hand bridges invocations to amber and on the other hand fiddled with the setup of $scope data structures so the $watchers work. We didn't try to do a full integration of amber in angularjs. Just let angularjs do what it can do best, then have a tiny interface to amber and let amber to what it can do best. The only things we did is something like

$scope.rentalObjectsController = require('amber/helpers').globals.RentalObjectsController._withScope_( $scope );

Basically there was just one big problem and that is angularjs itself. We've learned that mobile browser are dead slow. If you use things like ng-repeat in angular with a few variables to show you end up really quick with a huge amount of $watchers that slow everything down. Avoiding  ng-hide, ng-show and such constructs and using one-time bindings solved this and the app is pretty fast now.

The backend interface with amber we designed completely asynchronous using jquery Deferreds. Angularjs can deal with Promises so you are able to bind a deferred to a variable and angular does the rest when the promise is resolved. You just need to know that angularjs is using Q promises and things do not always work with jquery deferreds. But you can convert them by doing Q(jqueryDeferred).

If you like to know things just ask. There is great chance we learn something we should've already know :)

Norbert


- amber providing the controllers and services for angularjs

This project has been a great experience how web based things can be
done using amber. Most of the UI logic, the business logic, business
model and backend interface are done in amber. The code of the model and
the backend interface is shared between the native app and the web site.
Besides the git struggles (I've wrote a mail about that) the process
workflow from checking out, adding components, using amber serve to
develop, emulate the app in ionic up to the jenkins integration that
builds, package and signs the application turned out to be quite good.

Actually it does make sense to develop mobile web applications which
wasn't the case two years ago.

Norbert

[1] https://itunes.apple.com/de/app/id997752041
[2] https://play.google.com/store/apps/details?id=de.innoz.emcube&hl=de
<https://play.google.com/store/apps/details?id=de.innoz.emcube&hl=de>
[3] https://www.emobilitycube.de/
[4] https://cordova.apache.org/
[5] http://ionicframework.com/

-- 
You received this message because you are subscribed to the Google Groups "amber-lang" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "amber-lang" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [success story] eMCUBE

Manfred Kröhnert
In reply to this post by NorbertHartl
Hi Norbert,


On Fri, May 29, 2015 at 1:30 PM, Norbert Hartl <[hidden email]> wrote:
We are proud to present a little success story around amber. We did a mobile application for finding and renting electrical powered bikes and cars. It is german only only for the use in one german city called Wolfsburg. But nevertheless it is an amber app and it is available in itunes store [1] and google play store [2]. There is a web site as well [3] that is also done with amber.

The technical description:

The project is done using a combination of

- cordova [4] providing the native shell (ios, android) for the web project
- ionic [5] providing the web framework which is optimized for mobile use. Ionic uses angularjs
- amber providing the controllers and services for angularjs

This project has been a great experience how web based things can be done using amber. Most of the UI logic, the business logic, business model and backend interface are done in amber. The code of the model and the backend interface is shared between the native app and the web site. Besides the git struggles (I've wrote a mail about that) the process workflow from checking out, adding components, using amber serve to develop, emulate the app in ionic up to the jenkins integration that builds, package and signs the application turned out to be quite good.

Actually it does make sense to develop mobile web applications which wasn't the case two years ago.


this is a great announcement.
Really cool to see that Amber is and can be used for such a product.

Do you plan to write a blogpost or something about your development process and your experiences up to finishing the product?

@AmberDevs: We should probably add a section/page to the Amber homepage where we can select stories like this.

Thanks,
Manfred

--
You received this message because you are subscribed to the Google Groups "amber-lang" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.