• Skip to main content
  • Skip to footer

InRhythm

Your partners in accelerated digital transformation

  • Who We Are
  • Our Work
  • Practices & Products
  • Learning & Growth
  • Culture & Careers
  • Blog
  • Contact Us

Mobile Engineering

Nov 28 2023

Mastering SwiftUI Accessibility: A Comprehensive Guide

Based on a Lightning Talk by: Ilia Pavlov, Mobile Automation Test Engineer @ InRhythm on September 26th 2023, as part of this summer’s InRhythm Propel Summit 2023

Overview

In recent years, accessibility in app development has evolved from a checkbox item to an essential consideration for all designers and developers. SwiftUI, a powerful and intuitive framework for building apps across Apple’s ecosystem, also prioritizes accessibility. 

In this article, we’ll delve into the world of SwiftUI accessibility, exploring both its fundamental aspects and advanced features. By the end, you’ll not only understand how to create accessible apps but also appreciate the convenience SwiftUI offers in this regard:

  • Overview
  • Beyond The Basics: SwiftUI vs. UIKit
  • Accessibility Essentials
  • Common Accessibility Issues And Solutions
  • Accessibility Children, Rotors, And Canvas Accessibility Labels
  • Celebrating The InRhythm Propel Summit’s iOS Workshop
  • Closing Thoughts

Beyond The Basics: SwiftUI vs. UIKit

Before diving into SwiftUI’s accessibility features, it’s crucial to understand how SwiftUI’s approach compares to UIKit, its predecessor. While UIKit does offer accessibility features, SwiftUI significantly streamlines the process.

  • Declarative Syntax

SwiftUI’s declarative syntax simplifies the creation of accessible interfaces. It uses native Swift to create user interfaces, which inherently encourages proper accessibility practices. In contrast, UIKit relies on a more procedural approach, making it easier to miss or improperly implement accessibility features.

  • Automatic Adaptations

SwiftUI automatically applies accessibility traits like “Button” or “Header” based on the context, reducing the need for manual adjustments. UIKit, on the other hand, often requires manual declaration of such traits.

  • Focus On Content

SwiftUI emphasizes content accessibility, ensuring that every view automatically gets accessible content. In UIKit, achieving the same might require more manual intervention.

Accessibility Essentials

SwiftUI includes a plethora of tools to make your app accessible. Here are some essential aspects:

  • AccessibilityLabels

The ‘.accessibilityLabel()’ modifier allows you to provide an audible description of the view, aiding users with visual impairments. You can set the label to explain the view’s purpose or content.

  • AccessibilityHints

The ‘.accessibilityHint()’ modifier lets you provide further details when users interact with a view. It’s particularly helpful for complex or interactive elements.

  • AccessibilityTraits

SwiftUI includes a range of predefined traits like ‘.isButton’ and ‘.isImage’ to classify and convey the nature of elements to screen readers and other assistive technologies.

Common Accessibility Issues And Solutions

  • Inadequate Labels

A common issue is missing or inadequate labels. Using the ‘.accessibilityLabel()’ modifier to provide clear and concise descriptions for all user interface elements can resolve this.

  • Unclear Hints

Users may not understand how to interact with certain views. Employ ‘.accessibilityHint()’ to offer context and guidance.

  • Misclassified Elements

Sometimes, views are incorrectly classified, leading to confusion for assistive technologies. Ensure you use the appropriate accessibility trait, like ‘.isButton’ for buttons.

  • Ordering Issues

In SwiftUI, the order in which views are created is typically their order of appearance on the screen. Be mindful of this when arranging your interface elements.

Accessibility Children, Rotos, And Canvas Accessibility Labels

  • Accessibility Children

SwiftUI allows the creation of accessibility elements that may not correspond directly to visible views. For instance, you can group a set of items into an accessibility element to improve navigation and understanding.

  • Rotors

Rotors are customizable accessibility features that assistive technology users can employ for navigation. SwiftUI makes it easy to specify and order elements for rotors.

  • Canvas Accessibility Label

For Xcode Previews and canvas previews, you can set accessibility labels to ensure that developers and testers can understand the interface’s accessibility without needing to run the app.

Celebrating The InRhythm Propel Summit’s iOS Workshop

The InRhythm Propel Summit is an embodiment of our commitment to continuous learning and growth in the tech industry. In the realm of iOS development, our iOS workshop, a part of the summit, equips developers with the skills they need to build applications that are not just functional but provide exceptional user experiences. By fostering a community of learners and innovators, we align with the core values of the InRhythm Propel Summit and contribute to the advancement of the tech industry. The iOS workshop, like the entire summit, serves as a catalyst for propelling our industry forward.

Closing Thoughts 

SwiftUI has significantly improved the accessibility landscape for app developers. By providing a declarative approach, automatic adaptations, and a strong emphasis on content accessibility, it simplifies the process of making apps inclusive. To create truly accessible apps, it’s essential to master these accessibility features and ensure that every user can navigate and interact with your application seamlessly.

Remember, accessibility isn’t just about ticking boxes; it’s about ensuring that everyone can benefit from your software, regardless of their abilities.

Written by Kaela Coppinger · Categorized: Agile & Lean, Code Lounge, Design UX/UI, Learning and Development, Product Development, Software Engineering · Tagged: a11y, Accessibility, App Design, App Development, best practices, InRhythm Propel Summit, iOS Accessibility, iOS App, iOS App Development, iOS Architecture, iOS Workshop, learning and growth, Mobile Accessibility, Mobile Design, Mobile Development, Mobile Engineering, product development, software engineering, SwiftUI

Nov 21 2023

Building Robust iOS Applications: The Art of Modularization

Based on a Lightning Talk by: Hamid Mahmood, iOS Engineer @ InRhythm on September 26th 2023, as part of this summer’s InRhythm Propel Summit 2023

Overview

In the dynamic world of iOS app development, building scalable and maintainable applications is paramount. A critical aspect of achieving this goal is the practice of modularization. Modularization, as a software design principle, involves breaking down a complex application into smaller, more manageable components, or modules. 

This article delves into the importance of modularization in iOS development, particularly in the context of ecommerce platforms, its significance in software architecture, architectural patterns, the tools that enable it, and the role of modularization in the InRhythm Propel Summit and iOS Workshop:

  • Overview
  • Importance In Software Architecture
  • Modularized ECommerce Platforms
  • Overheads And Sample Architectures 
  • ECommerce Platform Dependency Tools
  • The InRhythm Propel Summit’s iOS Workshop
  • Closing Thoughts

Importance In Software Architecture

The importance of modularization in software architecture cannot be overstated. It plays a pivotal role in creating applications that are:

  • Scalable

Modularization allows for a more granular approach to software development. This makes it easier to add new features and functionalities, ensuring that the application can grow in line with business requirements.

  • Maintainable

Breaking down an application into smaller modules reduces complexity and makes maintenance more straightforward. Developers can focus on individual modules without affecting the rest of the application.

  • Testable

Modularization promotes a higher degree of testability. Individual modules can be tested in isolation, which improves the overall quality and reliability of the application.

Modularized ECommerce Platforms

In the realm of ecommerce, modularization is of paramount importance. Ecommerce platforms are complex systems, comprising various functionalities and components. To maintain flexibility, scalability, and ease of maintenance, such platforms often employ modularization strategies. 

These strategies include:

  • Foundational Modules

These modules contain the core functionalities of the ecommerce platform, such as user management, product catalogs, and order processing.

  • Feature Modules

Feature modules encapsulate specific features or functionalities of the platform, such as payment processing, customer reviews, or recommendation engines. This allows teams to work independently on these features and integrate them seamlessly.

  • 3rd Party Adapters

Modularization extends to third-party components or integrations. These can be easily adopted and integrated as modules into the ecommerce platform. This approach ensures that the platform remains open to expansion and integrations with external services.

Overheads And Sample Architectures

While modularization offers numerous benefits, it’s essential to acknowledge the potential overheads. Creating modules, managing dependencies, and ensuring proper communication between modules can introduce some complexity. However, the advantages far outweigh these potential issues.

A sample modular architecture for an ecommerce platform may consist of:

  • Core Module

This contains the foundational components, such as user authentication, product management, and order processing.

  • Feature Modules

Modules for features like payment processing, reviews, and recommendations.

  • UI Modules

These modules manage the user interface and interactions, ensuring a clean separation of concerns.

  • Third-Party Integrations

These modules integrate with third-party services, allowing the e-commerce platform to connect with external tools, like payment gateways or shipping services.

ECommerce Platform Dependency Tools

In the iOS ecosystem, several tools facilitate modularization:

  • CocoaPods

A popular dependency manager for iOS projects. It simplifies the process of adding, updating, and managing external libraries and modules.

  • Carthage

A decentralized dependency manager for Swift and Objective-C. It allows developers to declare and manage project dependencies more flexibly.

  • Swift Package Manager (SPM)

SPM is the official package manager for Swift and is now widely used for modularization in Swift-based projects.

The InRhythm Propel Summit’s iOS Workshop

The InRhythm Propel Summit embodies a commitment to fostering learning, innovation, and excellence in the tech industry. As a part of the summit, the iOS Workshop provides developers with the tools and knowledge needed to build applications that are not just functional but also provide exceptional user experiences. This aligns with the core values of the InRhythm Propel Summit, contributing to the advancement of the tech industry by fostering a community of learners and innovators.

Closing Thoughts

In the ever-evolving landscape of iOS app development, modularization stands as a cornerstone of scalable, maintainable, and high-quality software. In the realm of ecommerce, the application of modularization principles is even more critical. Through foundational, feature, and third-party modules, ecommerce platforms can flexibly expand and integrate external services. While modularization might introduce some overhead, the advantages it brings to the table are indispensable. When applied correctly, modularization can turn an intricate ecommerce platform into a resilient, efficient, and adaptive system.

Written by Kaela Coppinger · Categorized: Code Lounge, Learning and Development, Product Development, Software Engineering · Tagged: App Design, App Development, best practices, Ecommerce Apps, Financial Services, InRhythm Propel Summit, iOS App, iOS App Development, iOS Architecture, iOS Workshop, learning and growth, Mobile Design, Mobile Development, Mobile Engineering, Modularization, product development, software engineering

Nov 15 2023

Propelling Ahead Of The Android AR Core Curve: A Guide To Implementation And Future Trends

Overview

Augmented Reality (AR) is revolutionizing the way we interact with digital content and information. With the advent of Android AR Core, Google’s AR platform, developers have unprecedented tools at their disposal to create immersive and interactive AR experiences for Android devices. 

In this article, we will dive into the world of Android AR Core, exploring its core concepts, implementation strategies, and what the future holds for AR development:

  • Overview
  • Understanding Android AR Core
  • Getting Started With Android AR Core
  • Emerging Best Practices
  • The Future Of Android AR Development 
  • Closing Thoughts

Understanding Android AR Core

Android AR Core is a software development kit (SDK) that allows developers to build AR applications for Android devices. It leverages a device’s camera and sensors to recognize and interact with the real world. AR Core enables the placement of virtual objects in the physical environment, creating a seamless blend between the digital and physical worlds.

Getting Started With Android AR Core

Implementing AR Core into your Android application may seem complex, but Google has provided a wealth of resources and documentation to guide developers through the process. 

Here are the fundamental steps to get started:

  • Set Up Your Development Environment 

Ensure you have Android Studio and the AR Core SDK installed.

  • Create A Project

Start a new Android project in Android Studio or integrate AR Core into an existing one.

  • Understand Motion Tracking

AR Core uses motion tracking to understand the device’s position and orientation in the physical world. Learn how to enable and work with motion tracking.

  • Environmental Understanding

AR Core recognizes flat surfaces and feature points in the environment, allowing you to place objects accurately. Dive into environmental understanding to make your AR experiences more engaging.

  • Hit Testing

Learn how to detect when a virtual object intersects with a real-world object, enabling interactions.

  • Lighting And Reflection

AR Core considers the lighting conditions in the environment, ensuring that virtual objects appear natural and realistic.

Emerging Best Practices

As AR Core continues to evolve, certain best practices are emerging for developers:

  • Prioritize Performance

AR experiences demand real-time rendering and tracking. Optimize your application for performance to ensure a smooth user experience.

  • User-Centered Design

Create AR experiences that enhance user interactions with the physical world rather than overshadowing them.

  • Multi-Platform Compatibility

As AR Core expands to support more Android devices, aim for compatibility across various screen sizes and resolutions.

  • Experiment With Interaction

Explore novel ways for users to interact with AR content, such as gestures and voice commands.

The Future Of Android AR Development

The future of Android AR Core development is brimming with possibilities. As AR technology matures, we can expect:

  • Wider Adoption

With more Android devices supporting AR Core, AR applications will reach a broader audience.

  • Improved Realism

Advances in computer vision and machine learning will lead to more realistic AR experiences.

  • Cross-Platform Integration

Expect greater integration between Android AR Core and other AR platforms, enabling cross-platform AR applications.

Closing Thoughts

Android AR Core opens up a world of exciting opportunities for Android developers. By understanding its fundamentals, best practices, and future trends, you can position yourself at the forefront of this transformative technology. As AR becomes an integral part of our daily lives, your expertise in Android AR Core development will be more valuable than ever. 

Get ready to build the next generation of immersive, interactive, and visually stunning AR experiences on Android devices!

Written by Kaela Coppinger · Categorized: Design UX/UI, Learning and Development, Product Development, Software Engineering · Tagged: AI, Android, Android App Development, Android Design, Android Engineering, AR, AR Core, best practices, learning and growth, Mobile Design, Mobile Development, Mobile Engineering, product development, ux

Nov 14 2023

Navigating Accessibility In iOS: Empowering Users, Ensuring Compliance, and Fostering Innovation

Based on a Lightning Talk by: Bam Faboyede, Senior iOS Engineer @ InRhythm on September 26th 2023, as part of this summer’s InRhythm Propel Summit 2023

Overview

Accessibility in iOS is about creating an inclusive environment where all users can engage with your app, empowering them to navigate, understand, and interact effectively. 

In this article, we’ll embark on a detailed exploration of iOS accessibility, encompassing its priority, NDA compliance, standards like MWABP and WCAG, auditing tools, recommendations, and the invaluable Accessibility Inspector. Let’s dive into the realm of iOS accessibility and understand why it’s crucial, not just from a compliance perspective but as a catalyst for innovation:

  • Overview
  • Priority: Making Accessibility A Necessity 
  • NDA Compliance: Legal And Ethical Accommodations 
  • Standards: MWABP And WCAG
  • Accessibility Auditing Tools: Your Eyes And Ears
  • Accessibility Auditing Recommendations: Improving User Experience
  • Accessibility Inspector: A Lifesaver For Developers
  • The InRhythm Propel Summit: Innovation In iOS Accessibility 
  • Closing Thoughts

Priority: Making Accessibility A Necessity

Accessibility in iOS isn’t an optional feature; it’s a fundamental right for every user. It addresses the needs of individuals with various disabilities, including but not limited to visual, auditory, and motor impairments. Prioritizing accessibility ensures that everyone can benefit from your app’s functionalities, and it’s not just about compliance; it’s about ethical app development. Building accessibility features from the ground up should be part of your core design philosophy.

NDA Compliance: Legal And Ethical Accommodations

Besides being an ethical requirement, accessibility in iOS also has legal implications. Many countries have enacted laws or regulations that mandate digital accessibility. The Americans with Disabilities Act (ADA) in the United States is an example of such legislation. Ignoring these legal obligations can result in serious consequences, including lawsuits and damaged reputations.

Standards: MWABP And WCAG

The Mobile Web Application Best Practices (MWABP) and Web Content Accessibility Guidelines (WCAG) are the gold standards for ensuring the accessibility of digital content, including mobile apps. MWABP outlines best practices for mobile web applications, while WCAG offers a broader set of guidelines for web content in general. Complying with these standards is essential in making your iOS app accessible.

Accessibility Auditing Tools: Your Eyes And Ears

Auditing your iOS app for accessibility is a crucial part of the development process. Fortunately, there are various tools available to assist in this endeavor. Some of the most prominent ones include:

  • VoiceOver 

A built-in screen reader that reads the screen aloud to the user.

  • TalkBack

The Android equivalent of VoiceOver.

  • Color Contrast Analyzers

Tools to ensure text has adequate contrast against its background for visually impaired users.

  • Keyboard Navigation Testing

Verifying that all functions are accessible via keyboard shortcuts.

Accessibility Auditing Recommendations: Improving User Experience

Auditing tools are useful not just for identifying accessibility issues but also for providing recommendations to fix them. These recommendations often include adjusting elements for VoiceOver compatibility, enhancing color contrast, labeling UI elements for screen readers, and ensuring proper focus management for keyboard navigation.

Accessibility Inspector: A Lifesaver For Developers

The Accessibility Inspector in Xcode is a developer’s best friend when it comes to iOS accessibility. This tool allows developers to inspect elements and see how they would be perceived by assistive technologies. It offers a detailed look at an app’s accessibility hierarchy, allowing for debugging and remediation of accessibility issues.

The InRhythm Propel Summit: Innovation In iOS Accessibility

The InRhythm Propel Summit embodies our unwavering commitment to learning, innovation, and excellence in the tech industry. The iOS workshop within the summit, led by renowned experts in the field sheds light on accessibility and various other facets of iOS development. Our mission is to equip developers with the knowledge and skills they need to build applications that offer exceptional user experiences and foster innovation. The iOS workshop and the entire Summit serve as catalysts for propelling our industry forward, where technology enhances lives, making it more than just functional but integral to people’s well-being.

Closing Thoughts

Understanding and implementing accessibility in iOS is more than just a development requirement; it’s about creating an inclusive digital environment. It’s a moral and legal obligation, and it can serve as a catalyst for innovation in your app development. By prioritizing accessibility, complying with standards, utilizing auditing tools, and adhering to the recommendations provided, you’re not only making your iOS app accessible but also creating a better experience for all users.

Written by Kaela Coppinger · Categorized: Code Lounge, Design UX/UI, Learning and Development, Product Development, Software Engineering · Tagged: a11y, App Design, App Development, best practices, InRhythm Propel Summit, iOS Accessibility, iOS App, iOS App Development, iOS Architecture, iOS Workshop, learning and growth, Mobile Accessibility, Mobile Design, Mobile Development, Mobile Engineering, product development, software engineering

Nov 07 2023

Mastering iOS Navigation: A Deep Dive Into Pragmatic Design

Based on a Lightning Talk by: Michael Long, Lead iOS Engineer @ InRhythm on September 26th 2023, as part of this summer’s InRhythm Propel Summit 2023

Overview

In the world of iOS app development, creating an effective and intuitive navigation system is paramount. It’s the cornerstone of an app’s user experience, ensuring that users can seamlessly traverse through the various screens and features. 

In this article, we’ll explore iOS navigation from its fundamental components like the navigation stack to more advanced techniques like deep linking and handling open URLs, all while emphasizing the importance of pragmatic navigation design:

  • Overview
  • The Navigation Stack: A Hierarchical Approach 
  • Deep Linking: Precision Navigation
  • Handling Open URLs: Bridging The App Ecosystem
  • Pragmatic Navigation Design: User-Centric Approach
  • The InRhythm Propel Summit: A Platform For Learning And Innovation
  • Closing Thoughts 

The Navigation Stack: A Hierarchical Approach

At the core of iOS navigation lies the navigation stack, functioning on a last-in, first-out (LIFO) principle. It mimics the behavior of a stack data structure, where new view controllers are pushed onto the stack when users traverse to new screens. When they backtrack, these controllers are systematically popped off. Effective management of the navigation stack is critical for sustaining a coherent app flow.

For example, consider an e-commerce app. When a user proceeds from the product catalog to an item’s details, the item details screen is pushed onto the stack. If they decide to view another item’s details, the navigation stack accommodates this seamlessly, preserving the app’s logical flow.

Deep Linking: Precision Navigation

Deep linking is a sophisticated technique enabling users to land directly on a specific page or content within an app. This functionality supersedes the traditional practice of opening an app’s default screen. The result? Enhanced user engagement and retention, as users are guided directly to their desired content.

To implement deep linking, iOS developers set up URL schemes or Universal Links. These configurations empower apps to respond to external requests and launch with context, ensuring that the app opens precisely where the user expects.

Consider a news app utilizing deep linking. When users click a news article link, they’re taken directly to that specific article’s page, rather than the app’s home screen. This level of precision enhances the user experience.

Handling Open URLs: Bridging The App Ecosystem

To truly elevate your app’s accessibility and interconnectedness, it’s imperative to handle open URLs. This capability enables your app to respond to URLs originating from other apps or services. Let’s say your app is event-focused; when a user clicks on an event link in an email or a website, your app should open and display the corresponding event details.

Perfectly executed open URL handling doesn’t just make your app more versatile but also significantly improves the overall user experience. Users can smoothly transition from other apps or web content directly into yours.

Pragmatic Navigation Design: User-Centric Approach

Pragmatic navigation design is not just about aesthetics; it’s a user-centric approach that enhances the overall user experience. It incorporates aspects like information architecture, visual design, and interaction design, all aimed at ensuring that users can seamlessly navigate your app, locate content effortlessly, and switch between screens without any friction.

The InRhythm Propel Summit: A Platform For Learning And Innovation

The InRhythm Propel Summit is an embodiment of our commitment to continuous learning and growth in the tech industry. It’s a platform where experts and enthusiasts come together to share their knowledge, insights, and experiences. The iOS workshop at this summer’s Summit delved into the intricacies of iOS navigation, among other topics. It’s a part of our mission to equip developers with the tools and knowledge they need to build applications that are not just functional but provide exceptional user experiences. 

By fostering a community of learners and innovators, we align with the core values of the InRhythm Propel Summit and contribute to the advancement of the tech industry. The iOS workshop, like the entire summit, serves as a catalyst for propelling our industry forward. It’s a place where we not only grow individually but also collectively, making strides towards innovation and excellence.

Closing Thoughts

In the dynamic realm of iOS app development, navigation isn’t just about moving from one screen to another; it’s about guiding users on a journey. An intuitive, efficient, and engaging navigation system can be the difference between an app’s success and obscurity. Mastering the navigation stack, leveraging deep linking, and seamlessly handling open URLs are skills that every iOS developer should acquire. Moreover, adopting a pragmatic navigation design approach, centered around the user’s needs and expectations, is what separates good apps from great ones.

As we reflect on the multifaceted world of iOS navigation, we’re reminded of the InRhythm Propel Summit’s overarching mission: to foster learning, innovation, and excellence in the tech industry. The iOS workshop, along with other insightful sessions, not only equips us with practical knowledge but also nurtures the spirit of continuous growth and collective advancement. It’s a testament to our commitment to building a future where technology isn’t just functional; it’s an integral part of enhancing people’s lives.

As you navigate your own iOS development journey, always keep in mind the principles of effective navigation: logical structure, user-focused design, and a commitment to constant improvement. With these tools, you’re poised to make a real impact on the world of app development and the experiences of countless users.

Written by Kaela Coppinger · Categorized: Code Lounge, Learning and Development, Product Development, Software Engineering · Tagged: App Design, App Development, best practices, Deep Linking, InRhythm Propel Summit, iOS App, iOS App Development, iOS Architecture, iOS Workshop, learning and growth, Mobile Design, Mobile Development, Mobile Engineering, Navigation, Navigation Stack, Open URLs, product development, software engineering

  • Go to page 1
  • Go to page 2
  • Go to Next Page »

Footer

Interested in learning more?
Connect with Us
InRhythm

195 Broadway
Suite 2400, Floor 24
New York, NY 10007

1 800 683 7813
get@inrhythm.com

Copyright © 2023 · InRhythm on Genesis Framework · WordPress · Log in

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT