Relentlessly Curious + Continuous Improvement
For more than a decade, we’ve provided technology services that leverage our strengths to build cutting edge software solutions that help companies achieve their goals. We innovate and collaborate with our clients to engineer elegant solutions and easy-to-use products that deliver measurable results. An exceptional user experience is crucial for any business. We are constantly seeking out, testing and learning new ways to deliver large scale transformations and experiences for our clients.
Development Approach
Overview
Mobile application development is uncharted territory at times. Simply put, the process can vary due to legacy or bespoke architectures. Throughout the years we have learned to expect the unexpected. Our experience means we know what works and what doesn’t. We guide our clients through the process and minimize roadblocks. When they arise (and they do), we are obsessive in our quest to find the solutions and optimizations that deliver a scalable, reliable product.
Process
We start by gathering business intelligence and technical requirements. We calculate resource demands, determine data sets needed, align on internal and third party systems and find gaps in existing APIs and infrastructure.
Once we have all of the base information, we begin architecting the product. We determine everything from what server and cloud resources would provide the most benefit, to how the apps will communicate with our first and third party services. We build a quick prototype to see if questions arise about the feasibility of a new idea or how a service works. Then, we move to Agile development.
Scalability
As an app gains popularity, and a larger user base, it becomes more challenging to provide a superlative experience. The stakes are high when millions of devices are talking to the server at the same time, and positive reviews are on the line. We continually optimize server environments, develop fallback plans, and monitor audience growth - expecting the unexpected.
Platform Integrations
Most applications will access a myriad of services and platforms to provide functionality such as account creation and authentication, analytics/metrics, or push notifications. Where available, it is most effective for an app to communicate directly with these sources. We have connected to hundreds of platforms over the years, however; if that access needs to happen via an intermediate system, we develop it. By transforming content from integrated platforms into a generic format to be received by the app, we are able to keep API keys & secrets out of the app, and expose the content in a more convenient way, so any platform updates or changes require minimal development time.
Coding Languages
When it comes to mobile development, we stick to purely native for both platforms instead of using a framework like Flutter or React Native. In our decade of experience creating best in class mobile applications, we’ve learned that a one size fits all approach rarely fits well. By focusing our efforts on native Android and iOS, we are able to create clean, scalable apps with great user experiences. Java, Kotlin, javascript, Liquid, Swift and PHP are most often the languages you find behind our mobile applications and websites.
UI / UX Design Approach
Overview
Our design process varies a bit for each client, but always begins with research. Once we understand business goals and stakeholder expectations, we begin mapping out the user experience, cycling through iterations of wireframing and visual design. Throughout our process, we advocate for users.
Based in Research
Users spend most of their time in apps other than yours. So let's see what they're used to. We analyze competitor flows and features to see what essential elements your user base expects. Combined with study insights and known best practices that we share through immersive design thinking sessions, this gives us a good base to move forward.
Object-Oriented Approach
Humans think in nouns, not screen types, which is why we practice object-oriented UX. Before diving into layout, we figure out the main modules of the system by mapping out the objects users are there to interact with. This helps us understand the relationships between them and sketch out a contextually connected system that is intuitive to navigate before ever laying out a screen, bringing functionality questions to light early in the process.
Accessibility is Key
Accessible design is good design, and it benefits all users. We design according to industry best practices (e.g. WCAG 2.0), focusing on clarity and the belief that accessibility doesn’t have to come at the expense of enticing visual design.
Respect User Feedback
We encourage testing assumptions throughout the design and development process with real users. We do our damnedest to make the best product on our own, but we are generally not our audience. Lessons learned always improve the final product.
Branding + Creative Approach
Overview
Laying the groundwork for branding and design, creates a cohesive look within a brand, through all marketing materials, digital applications and beyond. happyMedium develops and thrives on brand looks and identity systems that uniquely positions brands to gain equity with consumers and stand out against competitors.
Establishing an Identity
A brand begins with a name. From here we can find our visual space and make our presence known. The name being our foundational building block, we build off of it by developing a complimentary Master Brand Mark (or logo) and secondary Brand Authenticators to give visual recognition in the marketplace. In some instances, some or all of these exist, and we’ll work together to understand what (if any) changes could be helpful to grow brand awareness.
Brand Styling + Standards
The BVI (Brand Visual Identity) is a living document that will evolve over time as various mediums are introduced and the brand grows. This document is intended to provide style direction, image standards, brand details, general aesthetics and general asset usage. Here is where we explore and develop a unique, signature style encompassing things like typography, color palette, tone-of-voice, photography and additional brand assets.