Skip to content
Writing

Author: Dipin Krishna

Android Sep 22, 2026 4 min read

Flutter: Check Internet Connection with connectivity_plus

To check the internet connection in a Flutter app, use the connectivity_plus package. It tells you whether the phone is on Wi-Fi, mobile data or no network at all, and when that changes. It can't tell you the internet actually works, so your requests still need to handle failure.

iOS Sep 22, 2026 3 min read

SwiftUI: Check Internet Connection with NWPathMonitor

To check the internet connection in a SwiftUI app, use NWPathMonitor from the Network framework. It tells you whether a network path is available, whether it is expensive or in Low Data Mode, and when any of that changes. It can't tell you the internet is actually reachable, so your requests still need to handle failure.

Android Sep 13, 2026 3 min read

Flutter Login and Signup Screen tutorial: iOS + Android + PHP 8 + Biometrics

A Flutter app for iOS and Android with signup, login, logout and Face ID or fingerprint unlock, talking to a PHP 8 API. The session token goes in the Keychain or the Android Keystore, and the forms work with password AutoFill on both platforms.

iOS Sep 13, 2026 4 min read

iOS Login and Signup Screen tutorial: SwiftUI + iOS 26 + PHP 8 + Face ID

Eleven years after the Swift 2 version, here is the login and signup tutorial again: SwiftUI screens, async/await networking, the session token in the Keychain, Face ID unlock, and a PHP 8 API that stores passwords and tokens the way they should be stored.

iOS Sep 13, 2026 2 min read

SwiftUI navigation bars on iOS 26: style the system bar, don’t hide it

Hiding the navigation bar to draw your own has always cost you swipe to go back. On iOS 26 both swipe gestures stop working, and the usual delegate workaround never even gets asked. Here's what the system bar can do instead, and where a custom bar still makes sense.

WordPress Sep 12, 2026 8 min read

wp cache flush doesn’t flush what your site is actually serving

Three times in one week I changed something on this site, verified the change, and watched the old version keep going out. Each time the change was correct. Each time a different cache was holding it, and the command I used to check was testing a layer that wasn't the problem.