
Connected Devices & Applications at Full Sail University
A retrospective on Connected Devices & Applications, the course where web development moved beyond a single browser view into Expo, cross-platform app structure, tablet workflows, mobile approvals, and connected data.
Connected Devices & Applications was the course that made the browser feel like one client among many instead of the center of the web development universe. Up to this point, most of my work assumed a person, a screen, a keyboard, and a conventional web page. This course broke that assumption apart. Expo, tablet workflows, mobile approval screens, and connected-device style interfaces all consume application services differently, and each one exposes different weaknesses in the way an application is designed.
The most important lesson was not that web technologies can run in unusual places. It was that an application model becomes more important as the interface becomes less traditional. When the same system has to support a desktop workflow, a tablet workflow, and a mobile workflow, the data contract has to be clear, secure, and predictable because each client has a different job to do.
Week 1: Expo Setup, CRUD, and Cross-Platform App Foundations
My thoughts at the time
The first week was about getting oriented in Expo and thinking about application structure across platforms. The module covered Expo setup, basic CRUD development, cross-platform configuration, environment setup, local storage with Expo SecureStore, and styling across platforms with supporting libraries. That was a meaningful shift from previous coursework because the target was no longer just a browser page. It was an app experience that had to behave consistently across device contexts.
CRUD work in this context felt different from CRUD in a conventional web app. A create, update, or delete action has to remain understandable even when the layout, input method, and available screen space change. The JavaScript and API habits from Application Development still applied, but the device context made the interaction design more demanding. Local storage added another layer: persistence is not just a convenience when you are building an app-like experience. It becomes part of how the interface keeps state across sessions and device interruptions.
The productivity app assignment gave the week a practical shape. It forced the setup work, storage decisions, CRUD patterns, and styling choices into one small but complete application. That made the course feel less like "mobile syntax" and more like application architecture under different platform constraints.
Retrospective insight
Week one taught me to think about web applications as shared state and behavior rather than pages. The most important question became: can this feature still make sense when the client changes? That mindset carries directly into responsive design, mobile workflows, tablet interfaces, and API-backed applications. A good application model should not depend on one perfect screen size or one perfect interaction pattern.
Week 2: Multi-Device Interface Project Prep
My thoughts at the time
Week two shifted from the initial Expo productivity app into the larger multi-device interface project. The project prep assignments were practical and architectural: project overview, foundational architecture, phone interface, tablet interface, web interface, debugging, and a discussion around platform parity versus platform-native experience. That discussion captured the tension of the entire course. The same system needed to feel coherent across devices, but "coherent" did not mean identical.
The foundational architecture work mattered because the project could easily become three disconnected interfaces pretending to be one application. The phone, tablet, and web views each had different jobs, but they still needed to share the same underlying workflow and data assumptions. That forced me to think about the application as a system first and a set of screens second, a continuation of the usability thinking from Interfaces and Usability.
The debugging piece also felt more realistic than debugging a single web page. When behavior differs across device views, the question is not just "why is this broken?" It is "is this a shared logic problem, a platform-specific layout problem, or an intentional difference between clients?" That distinction matters when you are trying to maintain one product across multiple usage contexts.
Retrospective insight
Week two taught me that platform parity is not the same thing as copy-pasting an interface across screen sizes. Parity means users can complete equivalent work with equivalent confidence. Platform-native design means the path to that work respects the device. A service advisor, technician, and customer may touch the same system, but they should not all be handed the same interface.
Week 3: Building the Connected Prototype
My thoughts at the time
Week three moved the project from planning and separate interface thinking into an actual connected prototype system. This was where the auto shop concept started to become a cohesive application rather than a set of device-specific mockups. The web interface represented the service advisor's operational view. The tablet interface represented the technician bay workflow. The phone interface represented the customer update and approval experience.
The hard part was deciding what each device should know and what it should hide. The service advisor needed more detail: job status, customer context, estimate state, and coordination across work orders. The technician needed a narrower and faster surface: assigned work, inspection notes, task progress, and clear update actions. The customer needed the simplest version of the truth: what changed, what needs approval, and what happens next.
The project check-in made the design decisions more concrete. It forced me to explain not just what the screens looked like, but why each interface deserved to exist separately. That was a useful constraint because it pushed the project away from responsive-layout thinking and toward workflow design.
Retrospective insight
Week three made the role-based nature of multi-device design clearer. Different clients are not only different screen sizes. They are often different users with different priorities. Designing the phone, tablet, and web interfaces around the user role instead of the viewport made the system feel more intentional and easier to reason about.
Week 4: Finalizing the Multi-Device Prototype
My thoughts at the time
The final stretch focused on completing the multi-device connected prototype system and responding to project check-ins. By this point, the challenge was no longer figuring out whether the idea worked. It was making the interfaces feel like parts of the same application while preserving their differences.
The auto shop workflow gave the project a useful test case because the handoffs were natural. A service advisor creates or manages the work. A technician updates progress from the bay. A customer reviews updates and approves work from a phone. Each step changes what the next user sees. That made state management and interface clarity more important than visual polish alone.
The final project also made the cost of unclear architecture visible. If the shared data model is vague, every interface starts inventing its own truth. If the workflow states are unclear, approvals, technician updates, and advisor actions become difficult to coordinate. The project rewarded clarity in the underlying structure because each client depended on it.
Retrospective insight
Week four reinforced that connected applications are mostly about handoffs. The technology matters, but the product succeeds or fails on whether the right person sees the right information at the right moment, on the right device, with the right amount of control. That is a more useful lesson than any single framework detail.
Closing Thoughts
Connected Devices & Applications was a course about deployment targets, but the deeper lesson was about assumptions. A browser is a generous environment. It gives users a visual layout, a pointer, a keyboard, browser controls, and familiar recovery paths. Multi-device applications remove some of that generosity. Mobile screens constrain space. Tablet workflows change input expectations. Web dashboards invite more operational density. The same workflow has to survive those differences without becoming three separate products.
That variety forced a more mature way of thinking about web development. The web is not just pages. It is shared state, services, contracts, events, payloads, and interfaces that may appear in different device contexts. This course helped me connect frontend thinking, API design, workflow modeling, and device-specific constraints into one model.
The Class Project: One System, Three Device Contexts
The clearest example from the course was an auto shop application I built where the same system had to serve three very different clients. The web client functioned like the service advisor's command center: intake, job status, estimates, and workflow visibility. Tablet views were designed for technician bays, where the priority was quick access to assigned work, inspection notes, and progress updates without forcing a full desktop workflow into a shop environment. The mobile version served customers, giving them a simpler path for repair updates, work approvals, and decisions that needed to happen away from the counter.
That project used the exact mindset this course introduced. The application was not "one website made responsive." It was one service model expressed through multiple clients, each with its own context, input constraints, and user expectations. The service advisor needed operational density. The technician needed speed and clarity in a hands-on workspace. The customer needed plain language and a low-friction approval flow. Treating those as separate device experiences rather than screen-size breakpoints produced a better product.
Where This Still Shapes How I Think
I do not currently have a production connected-device application in active use, but the design habit from this course still matters. It changed how I think about clients that consume the same service differently. A desktop dashboard, tablet workflow, phone approval screen, and browser extension may all share backend data, but they should not necessarily share the same interface assumptions.
That is the part I still carry forward. When I design an application now, I pay more attention to the context around the client: who is using it, what device they are on, what they need to accomplish quickly, and what the system can safely assume. SEO Peek, for example, is not a normal web page; it is a compact browser extension with a specialized runtime and a task-specific interface.
The connected-prototype portion also connects to how I think about data flow. Whether the source is a service advisor form, a technician update, a customer approval, an analytics event, or an API integration, the same questions apply: what is the data shape, how is it validated, when was it recorded, and how will it be interpreted later? Those questions matter in dashboard work, operational reporting, and any application that turns raw events into decisions.
Code: Designing an API for Non-Browser Clients
The core pattern this course reinforced is that each client needs an explicit contract. A service advisor web view, technician tablet view, and customer mobile approval flow should not have to guess what an API response means.
type WorkOrderEvent = {
workOrderId: string
actor: 'advisor' | 'technician' | 'customer'
eventType: 'created' | 'inspection_updated' | 'approval_requested' | 'approved'
note?: string
recordedAt: string
}
type WorkOrderResponse = {
accepted: boolean
message: string
eventId?: string
errors?: string[]
}
export async function logWorkOrderEvent(event: WorkOrderEvent): Promise<WorkOrderResponse> {
const errors: string[] = []
if (!event.workOrderId) errors.push('workOrderId is required')
if (!event.recordedAt || Number.isNaN(Date.parse(event.recordedAt))) {
errors.push('recordedAt must be a valid ISO timestamp')
}
if (errors.length > 0) {
return {
accepted: false,
message: 'Work order event rejected',
errors,
}
}
const eventId = crypto.randomUUID()
await saveEvent({
id: eventId,
...event,
receivedAt: new Date().toISOString(),
})
return {
accepted: true,
message: 'Work order event logged',
eventId,
}
}
For a customer approval flow, the same discipline applies to the response:
function createApprovalResponse(summary: string, requiresCustomerAction = false) {
return {
status: requiresCustomerAction ? 'pending_approval' : 'updated',
message: summary,
nextAction: requiresCustomerAction ? 'customer_approval_required' : null,
}
}
The specific platform changes. The principle does not: each client needs small, predictable payloads with clear success and failure states.
FAQ
What are connected devices and cross-platform clients in web development? Connected devices and cross-platform clients are application surfaces that consume shared services outside a standard desktop browser flow. Examples include mobile apps, tablet workflows, web dashboards, wearables, and embedded systems. They often use web technologies, but they impose different constraints on input, output, security, and performance.
Why does API design matter more for connected devices and multi-client apps? Connected devices and multi-client apps usually have less flexibility than a full desktop browser experience. A technician tablet view needs quick task updates, a customer mobile flow needs plain approval language, and a service advisor web dashboard needs operational visibility. Clear API contracts make those clients reliable because the response shape, error states, and data expectations are predictable.
Why is shared state difficult in a multi-device application? Shared state is difficult because each client sees a different slice of the same workflow. A technician update may need to change the advisor dashboard and trigger a customer approval flow. If the states are not defined clearly, each interface starts representing the work order differently.
What did this course add to the Full Sail web development path? It expanded the definition of web development beyond pages and desktop browsers. Earlier courses built the foundation for JavaScript, APIs, security, and testing. Connected Devices & Applications showed how those same skills apply when the client is a mobile app, tablet workflow, web dashboard, or connected prototype.
Credits and Collaboration
A huge thank you to Esther Allin for designing the blog banner art! If you're looking for a professional digital media specialist, Connect with her on LinkedIn!
Share this article

Ryan VerWey
Full-stack developer, Army veteran, and founder of Echo Effect LLC. Currently serving as CTO at Ratespedia and building enterprise software for USSOCOM. Nearly two decades of shipping real products across defense, fintech, and the open web. More about Ryan or see the work.
Recommended Reading

Advanced Server-Side Languages at Full Sail University
A retrospective on Advanced Server-Side Languages, the course where I moved past Node.js basics into TypeScript on the backend, built real-time features with WebSockets, and structured an Express application built to last rather than just to ship.

Project and Portfolio III: Web Development at Full Sail University
A retrospective on Project and Portfolio III, the course where I diverged from the suggested Spotify project and built a Full Sail Alumni Networking App from scratch, complete with user registration, social profiles, a blog, and a collaborative project board, managed entirely through Agile sprints and weekly SCRUM.

Going Further With Project and Portfolio II at Full Sail University
A retrospective on Project and Portfolio II: Web Development, the course where I built a full React application from prototype to finished product, integrating external APIs, MongoDB, CSS libraries, and a formal presentation showcase.