Skip to main content

Abusing ViewControllers

UIViewControllers are a fundamental building block of most iOS applications. Unfortunately many developers seem to use them in unintended and unsupported ways which leaves their apps vulnerable to bugs, rejections, unpredictable behavior under new iOS releases, and with controllers which are difficult to update or reuse. The core misconceptions behind this abuse of UIViewController are understandable. Apple presents UIViewControllers as a key element of an app’s navigation and interface stating “custom view controllers are the primary coordinating objects for your application’s content”. The basic application templates are defined in terms of their UIViewController behavior; “navigation-based”, “tab bar”, “split-view based”. From our first exposure to the platform developers are presented with UIViewControllers as classes for managing views and the transitions between them. Sadly those examples present a pattern which we, as iOS developers outside Apple, cannot follow or build on.

Carbon Five Community

Comments

Most Favorite Posts

TechLead: React Native vs Flutter vs WebView - Hybrid Mobile App Development for 2018

Topics covered: Xamarin, Cordova, Flutter, Titanium, React Native, Flutter React Native Web Views Native Development: iOS and Android Types of apps: Fully native high interactivity expensive: iOS and Android high interactivity, personalization, performance worth for top 50 apps less and less apps are installed you need to shine to be discovered user picks only best app among similar featured apps Hybrid Technologies Xamarin, Cordova, Flutter, Titanium, React Native, Flutter Be aware of the maturity lock-in effect infrastructure and tooling required might get worst of both world should be incrementable updatable check where it makes sense WebViews only Native App shells: Amazon App, Apple App Store, WeChat Mainly for smaller companies Trending on Google Links: AirBnB is sunsetting its React Native development What’s Next for Mobile at Airbnb Server-Driven Rendering Even though we’re not using React Native, we still see the val...

Dark Theme (Dark Mode) in Android WebViews, WKWebViews and CSS

So your apps just implemented a shiny new dark theme and it’s looking 👌 There are lots of benefits to having a dark theme in your application, and having it consistent throughout your application allows for a great user experience. But what happens when the the user runs into a WebView in your app? Support: if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { ... } Set: WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON) Current setting: val forceDarkMode = WebSettingsCompat.getForceDark(webView.settings) Joe Birch Assuming your question is asking how to change the colors of the HTML content you are displaying in a WKWebView based on whether light or dark mode is in effect, there is nothing you do in your app's code. All changes need to be in the CSS being used by your HTML content. CSS dark mode via :root variables, explicit colors and @media query: :root {     color-scheme: light dark;      ...

App Performance Monitoring

AppDynamics Real-time performance monitoring—from code-level to customer experience Application Performance Monitoring Remove complexity and solve problems more quickly with proactive, end-to-end performance monitoring. End-User Monitoring Create better experiences where your customers are engaging with your business the most. Business Performance Monitoring See the real-time impact application performance and customer experience are having on your bottom line. AppDynamics bonkey: " I still call it CRASHDynamics " ...maybe they improved since then? New Relic Performance monitoring for today’s digital business Full Stack Visibility Monitor and optimize your entire technology stack—from your infrastructure and applications to browser and mobile apps. Built to Scale The only pure-play 100% multi-tenant cloud platform that's easy to deploy. And with no hardware to manage, you can see higher ROI and significantly lower TCO. Real-time Analytics for Ev...

iOS and Android native App Install Banner

Android Native App install banners are similar to Web app install banners, but instead of adding to the home screen, they will let the user install your native app without leaving your site. Developer Google iOS Promoting Apps with Smart App Banners: Safari has a new Smart App Banner feature in iOS 6 and later that provides a standardized method of promoting apps on the App Store from a website. Developer Apple

Getting Started with Swift on Android

The Swift stdlib can be compiled for Android armv7, x86_64, and aarch64 targets, which makes it possible to execute Swift code on a mobile device running Android or an emulator. This guide explains: How to run a simple "Hello, world" program on your Android device. How to run the Swift test suite on an Android device. GitHub

PeekPop - Pre-iPhone 6S and 6S+

Peek and Pop Let your users preview all kinds of content and even act on it — without having to actually open it. Users can then press a little deeper to Pop into content in your app. Apple 3D Touch PeekPop Peek and Pop is a great new iOS feature introduced with iPhone 6S and 6S+ that allows you to easily preview content using 3D touch. Sadly, almost 80% of iOS users are on older devices. PeekPop is a Swift framework that brings backwards-compatibility to Peek and Pop. GitHub

Returns and refunds on Google Play

Refunds may be available for purchases on Google Play: If something was bought on your account or with your payment method that you didn’t permit, we can usually help. If the purchase you made wasn’t delivered, doesn’t work, or isn’t what you expected, we can usually help. If you bought something by accident, or bought something then changed your mind, we may be able to help depending on the specific situation. If you give your account or payment details to someone else, appear to be abusing our policies, or don’t protect your account with authentication, we usually can’t issue a refund. It’s important that you make a refund request as soon as possible after you find an issue. Select a link below for more information and to find out how to make a request. Refund times: Payment method Estimated Refund time Credit card 3–5 business days Processing time can be affected by the card issuer and sometimes takes up to 10 business days. If yo...