Angular DOM Sanitization in Ionic
Angular comes with built-in Cross Site Scripting (XSS) protection, which prevents you from using unverified dynamic values in certain contexts inside your generated page. Most of the time you shouldn't...
View ArticleIonic Global Error Handler
During development (when using ionic serve), Ionic replaces the default Angular error handler with its own implementation which displays the error details in a page overlay instead of just printing...
View ArticleDeploying a DocPad Site to Azure Using CircleCI
When I wanted to replace my local TeamCity based deployment setup for my blog with a hosted one, I chose CircleCI based on its good support for private repositories in BitBucket and an abundant free...
View ArticlePrepare Command Performance in Cordova 7.x
After we upgraded the Cordova version on our build server from 6.5.0 to 7.1.0, we noticed a large increase in build time for our project. By looking at detailed build times, we could attribute all of...
View ArticleLazy Loaded Modal Pages in Ionic
Modal pages in Ionic are very similar to regular pages. They only differ in how they are displayed: Regular pages are pushed onto the stack using the NavController: this.navCtrl.push(RegularPage);...
View ArticleResources from Global Azure Bootcamp 2018
It's April again and last Saturday it was time for the annual Global Azure Bootcamp event. The Slovenian one was taking place at the local Microsoft offices. There were three sessions in total,...
View ArticleBuilding Ionic Apps for Different Environments
In one of my previous posts, I've written about changing the config.xml file when building an app for different environments. However, sometimes that's not enough. You might want to make other changes...
View ArticleLazy Loading Performance in Ionic
Lazy loading was introduced in Ionic 3 to reduce application startup time. It started out as an experimental feature, but has since then become the default way for building Ionic applications. However,...
View ArticleFixing Ionic Generate for Old Projects
Ionic Generate command is a handy tool for creating new pages, components, providers and other file types in Ionic applications. It strongly relies on the standard Ionic project structure. Since the...
View ArticleMy Sessions at NT Conference 2018
It's the week of NT Conference 2018 which was taking place from Tuesday till Thursday in Portorož. I had two sessions this year. On Tuesday, I had the first session of the day. I talked about a...
View ArticleExtending TypeScript Types with Intersection
In JavaScript, it's really easy to just add another field to an existing object. Of course, there is a way to express that in TypeScript. Actually, there's even more than one way to do it. Simply...
View ArticleDisabling Tabs in Ionic
Quick switching between tabs in Ionic can cause issues when one of the tabs requires a long initialization process every time it is displayed, as for example native Google Maps do. Before the...
View ArticleViewing Console Log from an Android Device
In a previous blogpost, I've described how to intercept console log output when the application is running on the device, so that it can later be exported using the standard sharing functionality....
View ArticleReturning Results from Ionic Alerts
Alerts are a great way for collecting simple inputs from the user with minimum effort. The examples in the official documentation contain business logic directly in button handlers which not only makes...
View ArticleReturning Results from Ionic Modals
In the previous blogpost, I created a wrapper function for creating an alert in Ionic which returned a promise with user's input. Although alerts in Ionic are quite flexible, you'll eventually...
View ArticleCyclomatic Complexity in .NET Core
Cyclomatic complexity is a simple code metric, commonly used to identify complex methods which are difficult to maintain and therefore good candidates for refactoring. It is one of the five code...
View ArticlePopping to Specific Ionic Page by Name
Surprisingly, there's no easy to use functionality built into Ionic to find a specific page in the navigation stack by its name and pop as many pages as necessary to reach it. Such functionality can be...
View ArticleProvider Instances in Lazy Loaded Modules
If you're developing applications for Ionic or Angular, you have probably already encountered static forRoot() and forChild() methods which you need to call when importing other modules, such as...
View ArticleUsing Embedded Angular Templates
When you want to reuse a part of markup in Angular, you usually wrap it into a separate component which is not limited to markup only. It can include its own code as well. However, sometimes a...
View ArticleBeware of Optimized Angular Change Detection
Updating of views in Angular is fully dependent on its change detection. I've already written a post on how code executed outside NgZone can be missed by change detection. But Angular's highly...
View Article