This is a small todo app to demonstrate how to separate application logic and business rules from Ionic 2 as a framework. Almost all the logic is in a directory called
core with no outside dependencies.
See Ionic 2 Todo app on GitHub.
Ionic 2 interacts with the
core app through a single point of entry, the
For a todo app, this example might be a bit over-engineered, but it serves as a starting point for a more complex app I’m developing.
Please read my other post Towards A Clean Architecture for Ionic 2 Apps to understand what I’m trying to achieve.
The app is extremely light on UI stuff. There’s basically a Timer that triggers a dummy interaction after 3 and 5 seconds. But that’s not the point of the project.
Continue reading Simple Ionic 2 TODO App
I have one requirement for my new Ionic 2 app: The core needs to work without Ionic 2. It will be released as native apps for Android and iOS, but also as a Single-Page-App (SPA).
Ionic 2 is optimized for iOS and Android and not made for Web apps. Thus, I need to separate as much logic as possible from Ionic 2 and create a core application that can be interacted with through an Ionic 2 layer or an SPA.
This requirement forces me to think about a clean architecture when writing Ionic 2 apps.
I haven’t found the perfect solution yet, but stumbled across a few interesting ideas, concepts and articles that I want to share with you.
Even if you won’t make a Web-app, I hope you can take a few ideas from this post.
Continue reading Towards A Clean Architecture for Ionic 2 Apps
The other day I read on Hacker News something like:
I wanted to get into Web Development. Is it really that ugly, hard, and annoying?
I thought: What’s the problem? It ain’t that bad, but to be honest, it really is quite difficult.
Since I decided to make the new version of my app entirely hybrid, I’m intrigued by Ionic 2, Angular 2 and TypeScript.
Sure, you can punch out a stupid small app in no time with Ionic 2, but something with a bit more complexity requires a few more brain cycles. Obviously, my new app has to be maintainable, needs sync across devices, I want a web UI in addition to the mobile apps and all of a sudden, I find myself in the same mess as the guy who asked on Hacker News.
Doing a hybrid mobile app in 2016 means to learn:
Continue reading Hybrid app development is complicated
Two ways to get 1px wide sharp and crisp lines for retina displays:
- Scale the canvas to twice the size (
context.scale(2,2);) and then draw a 1px wide line like so:
- Use all device pixels and draw the image twice the size. This is the approach I focus on in this blog post.
Here is how to draw super sharp lines on an HTML5 canvas for retina displays: Continue reading How to Draw Sharp Lines on a HTML5 Canvas for Retina Displays
I made an app with Impact.js that did neither require the Game Center, nor In-App Purchases. If you disable the capabilities in your Xcode project, you’ll notice that the build fails with 11 linker errors:
Continue reading Ejecta & Impact.js – Disable Game Center & In-App Purchase Capabilities
The official documentation of Ejecta is alright to get you started, but the stuff about retina and iPhone resolutions just gave me a headache, especially since I wanted to do a pixel-perfect game with no scaling. So I ran some tests and share them with you to save you the time.
Continue reading Ejecta & Impact.js – Which Resolution for iPhone?
A few weeks back I bought a license for Impact.js, a decent HTML5 game engine I enjoyed working with so far. I bought it to get back into game programming. What I like about HTML5 games is that they are extremely accessible. Everybody has a browser, nothing has to be installed and HTML5 games can be quite engaging.
Continue reading Tutorial: Tetris with Impact.js