NavParams Alternatives in Ionic 4
Ionic 3 provided a unified way for passing parameters to newly opened pages - the NavParams object. In the target page constructor, it could be used to get any parameters passed to that page:...
View ArticleIonic 4 Modals in Lazy-Loaded Modules
When creating pages using the Ionic CLI, by default each one of them is placed in its own module to enable lazy loading. However, if you want to display such a page as a modal instead of navigating to...
View ArticleOpening Ionic 4 Modals from a Common Service
In Ionic 4, even for lazy-loaded modal pages the component must be specified using the type (unlike in Ionic 3 where it had to be passed in as a string containing the type name): const modal = await...
View ArticleSlides from my MakeIT 2019 Session
MakeIT is the annual conference of the local Java community. I usually don't even consider speaking there but when the call for papers was announced for this year, I was in the middle of preparing my...
View ArticleSlides and Code from .NET DeveloperDays
In August, I was invited by the organizers of the .NET DeveloperDays conference to have a session about C# 8 in Warsaw at the end of October. After a few exchanges with them and a short consideration,...
View ArticleSolving Puzzle Geocaches Programmatically
Puzzle geocaches often require some calculations to determine the final coordinates. That's particularly common in GeoArt trails. Although some of these trails can be quite long, I had always solved...
View ArticleRepeating Same Ionic 4 Page in History
In Ionic 3, there was no need to pay any attention which pages you navigate to and how. They were always correctly placed in the history and the back navigation worked as expected. This made it easy to...
View ArticleIonic 4: Pinned Certificates in Output Folder
If you want to use certificate pinning in Ionic 4 applications, the Cordova Advanced HTTP plugin is your best option. There's even an Ionic Native wrapper available for it to make it easier to use. To...
View ArticleCustomizing Android Back Button in Ionic 4
Android hardware back button is something one can easily forget about but must in the end be properly supported in any mobile application. Unfortunately, built-in support in Ionic 4 is less than...
View ArticleConvert Custom Ionic 3 Transitions to Ionic 4
Support for custom transitions between pages in Ionic framework (e.g. when opening a modal page) has never been well documented. In Ionic 3, the enterAnimation and leaveAnimation options for modal...
View ArticleEF Core Integration Testing with SQL LocalDB
In a recent discussion of pros and cons of using EF Core in-memory database provider for testing, the idea of using SQL Server Express LocalDB instead came up. I remembered reviewing an article about...
View ArticleFix for Ionic 4 Side Menu Freezing
After upgrading our Ionic application to Ionic 4, testers started reporting that the side menu randomly froze in place when an item inside it was clicked. The problem could only be resolved by...
View ArticleFix for Ionic 4 Side Menu Freezing
After upgrading our Ionic application to Ionic 4, testers started reporting that the side menu randomly froze in place when an item inside it was clicked. The problem could only be resolved by...
View ArticlePop Multiple Pages in Ionic 4
In Ionic 3, navigation was stack based. NavController was used for controlling the navigation stack (i.e. for pushing pages onto the stack and popping them of the stack). In Ionic 4, it's recommended...
View ArticleAssets Not Loading in Ionic Unit Tests
Recently I had to embed a JSON file as an asset in my Ionic 4 project. When I tried to test the code accessing the asset, I was unpleasantly surprised. The JSON deserialization failed with:...
View ArticleBe Careful with Using Declarations in C# 8
One of the less talked about new features in C# 8 are using declarations. That's not too surprising since it's essentially just syntactic sugar for using statements. Before C# 8, one could create an...
View ArticleMocking Fetch Calls with Jasmine
After getting asset loading working in Ionic unit tests, I wanted to also test the error handling in case an asset fails to load (e.g. because it's missing). Mocking the fetch call would be the easiest...
View ArticleExporting Data from Apps Using Automation
With the SportTracks 3 end of life just around the corner and no assurances that the application will still work after that, it's time to export old data from it and start using other applications and...
View ArticleBook Review: A Philosophy of Software Design
I learned about A Philosophy of Software Design by John Ousterhout from a blogpost by Gergely Orosz. His review of it piqued my interest and I decided to read it in the near future. I didn't regret...
View ArticleTesting Ionic Apps on iOS with Serve
The Safari browser has a tendency to render pages differently than Chrome. Troubleshooting such cases in Ionic apps and testing potential fixes can be time consuming, especially when developing on...
View Article