Public Sector

We've had the pleasure of working with UK and overseas central and local government departments, including Healthcare (NHS and Foundation Trusts), Defence, Education (Universities and colleges), many of the main Civil Service departments, Emergency Services; also public-owned corporations including the BBC, Bank of England, Ordnance Survey, and regulatory bodies such as Ofgem.

We are registered on Crown Commercial Service’s (CCS) Dynamic Purchasing System (RM6219 Training and Learning) and also with numerous tender portals such as Ariba, Coupa and Delta E-Sourcing.

Read more...

Graduate Training Schemes

Framework Training has a strong track record of providing a solid introduction into the working world for technical graduates across myriad industries. We provide the opportunity to learn and gain valuable hands-on experience in a supportive, friendly and sociable training environment.

Attract & retain the brightest new starters

We know it is vital for our clients to invest in the future of their talented grads; not only to provide them with high-quality, professional training essential for their roles, but to embed them within the organisation’s culture and guide them on the right path to a successful career.

After all, your new hires could well be the next leaders and their creative ideas and unique insights are invaluable to your business.

Read more ...

Learning & Development

Our unique portfolio of high-quality technical courses and training programmes are industry-respected. They’re carefully designed so that delegates can seamlessly apply what they’ve learnt back in the workplace. Our team of domain experts, trainers, and support teams know our field — and all things tech — inside out, and we work hard to keep ourselves up to speed with the latest innovations. 

We’re proud to develop and deliver innovative learning solutions that actually work and make a tangible difference to your people and your business, driving through positive lasting change. Our training courses and programmes are human-centred. Everything we do is underpinned by our commitment to continuous improvement and learning and generally making things much better.

Read more...

Corporate & Volume Pricing

Whether you are looking to book multiple places on public scheduled courses (attended remotely or in our training centres in London) or planning private courses for a team within your organisation, we will be happy to discuss preferential pricing which maximise your staff education budget.

Enquire today about:

  • Training programme pricing models  

  • Multi-course voucher schemes

Read more...

Custom Learning Paths

We understand that your team training needs don't always fit into a "one size fits all" mould, and we're very happy to explore ways in which we can tailor a bespoke learning path to fit your learning needs.

Find out about how we can customise everything from short overviews, intensive workshops, and wider training programmes that give you coverage of the most relevant topics based on what your staff need to excel in their roles.

Read more...

Upskill to Modern iOS Development with SwiftUI

Transition from UIKit to SwiftUI for Efficient UI iOS app development.

About the course

SwiftUI represents a significant evolution in how user interfaces are built across Apple platforms, moving away from the imperative and constraint-heavy approach of UIKit and Autolayout towards a modern, declarative paradigm. For experienced iOS developers already proficient in Swift and UIKit, mastering SwiftUI is crucial for building efficient, maintainable, and cutting-edge applications that leverage the latest platform features. This 4-day intensive hands-on upskilling training course is specifically designed to equip existing iOS app developers with the knowledge and practical skills necessary to confidently develop user interfaces using SwiftUI, integrate it into their workflow, and understand how it interacts with existing UIKit codebases.

The course begins by introducing the fundamental concepts of SwiftUI, including the principles of declarative programming, understanding the structure of a SwiftUI app, composing views, and effectively utilising Xcode Previews for rapid UI iteration. Participants will then gain a deep understanding of SwiftUI's powerful and flexible layout system, learning how to effectively replace Autolayout by mastering the use of Stacks (VStack, HStack, ZStack), Frames, Spacers, and applying Modifiers to views. The training demonstrates how to create reusable custom interface components and views using SwiftUI's lightweight syntax, Functions, and ViewBuilders.

Building on layout fundamentals, the course covers implementing common and essential UI patterns, including building Lists (List and LazyStack) to display collections of data, handling complex cell structures, and implementing multi-screen navigation using modern SwiftUI components like NavigationStack and NavigationSplitView, along with effectively passing state between screens. A core focus is placed on SwiftUI's approach to managing data flow and state using Property Wrappers like @State, @Observable, @Environment, @Binding, and @Bindable, explaining their appropriate use cases and demonstrating how to bind data to standard SwiftUI Controls and encapsulate complex control logic within reusable views. Participants will also explore architectural patterns suitable for SwiftUI, focusing on applying the MVVM (Model-View-ViewModel) concept, structuring apps, and using Observable objects for data management, including in the environment. The course covers handling asynchronous calls, such as web service access and continuous data streams, within the SwiftUI data flow using observable results. Finally, the training addresses the practical reality of migrating to or integrating SwiftUI by demonstrating techniques for linking SwiftUI and UIKit, allowing developers to embed views and screens from one framework into the other. The course culminates in a comprehensive case study where attendees will apply all the learned concepts to build a significant, multi-screen, data-driven application, solidifying their skills for real-world SwiftUI development.

Instructor-led online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.

    • Understand the core principles of SwiftUI and declarative programming and differentiate it from the UIKit development paradigm.
    • Master SwiftUI's modern layout system, including using Stacks, Frames, Spacers, and Modifiers, and create reusable custom view components.
    • Implement common UI patterns such as Lists (List, LazyStack), complex cell structures, and multi-screen navigation using SwiftUI components (NavigationStack, NavigationSplitView).
    • Effectively manage data flow and state in SwiftUI applications using key Property Wrappers (@State, @Observable, @Environment, @Binding, @Bindable) and understand when to use each.
    • Build interactive user interfaces using standard SwiftUI Controls, Forms, and Modal sheets, and correctly bind data to controls.
    • Apply the MVVM architectural pattern when structuring SwiftUI applications and effectively utilise Observable objects for data management locally and in the environment.
    • Implement handling of asynchronous operations (e.g., web service calls, continuous data streams) and integrate the results into the SwiftUI data flow using observable results and Environment objects.
    • Understand and apply techniques for linking SwiftUI and UIKit, enabling the integration and interoperability between views and screens built in both frameworks.
    • Apply comprehensive SwiftUI development skills learned throughout the course to build a multi-screen, data-driven application based on a real-world case study.
  • This intensive hands-on upskilling training course is specifically designed for experienced iOS app developers who are familiar with Swift and UIKit and want to learn how to build modern user interfaces using SwiftUI. It is ideal for:

    • iOS Developers currently building applications with UIKit who want to transition to or incorporate SwiftUI into their projects.

    • Developers looking to understand the declarative programming paradigm and its application in iOS development.

    • iOS Developers needing to learn modern data management and architectural patterns suitable for SwiftUI.

    • Development teams planning to adopt SwiftUI for new projects or integrate it into existing UIKit codebases.

  • Participants should have attended our Modern iOS app development with Swift course or have equivalent experience:

    • Experience developing iOS applications using Swift (and the UIKit framework).

    • A solid understanding of common iOS development concepts (e.g., view controllers, delegation, protocols, asynchronous operations, basic data handling).

  • Introduction to SwiftUI

    • Trainer and Delegate Introductions / Introduction to the course and SwiftUI's place in Apple development.

    • The structure of a SwiftUI app.

    • Showing views on a single screen.

    • Understanding Declarative programming principles compared to imperative.

    • Using Previews for rapid UI iteration.

    • Lab 1: Trying out SwiftUI basics - Creating simple views and understanding the structure.

    Replacing Autolayout

    • Understanding SwiftUI's layout system as a replacement for Autolayout.

    • Stacks (VStack, HStack, ZStack) and frames - the idea of ViewBuilders.

    • Spacers and padding for fine-tuning layout.

    • Applying modifiers to views.

    • Making SwiftUI interface components of your own - Creating reusable Views, Functions, and ViewBuilders.

    • Lab 2: Setting out screen layout in SwiftUI - Building complex layouts using stacks, frames, and modifiers.

    Table views and navigation

    • Building a simple table (List and LazyStack).

    • Adding complex cell structures within Lists.

    • Navigating to subscreens / passing State.

    • Using modern navigation containers: NavigationStack and NavigationSplitScreen.

    • Lab 3: Making a multi-screen table-based app - Implementing lists with custom cells and navigation.

    Overview of using data in Views

    • Understanding data flow in SwiftUI.

    • Using Property Wrappers for data management.

    • @State: Managing local view state.

    • @Observable: Managing observable objects (often for models/view models).

    • @Environment, @Binding, @Bindable: Sharing state and creating two-way bindings.

    • When to use which access method and property wrapper.

    • Lab 4: Using state in a control - Implementing data binding with a simple control.

    Controls and Forms

    • Building user interfaces with standard controls available in SwiftUI (e.g., TextFields, Toggles, Buttons).

    • Binding variables to controls to create interactive elements.

    • Creating complex Forms.

    • Presenting content modally using Modal sheets.

    • Ways of encapsulating a complex control in a reusable view.

    • Lab 5: Building a form to get user details - Creating a form with multiple controls and handling input.

    Architecture of a SwiftUI App

    • Concepts of architectural patterns, focusing on MVVM (Model-View-ViewModel).

    • Applying MVVM principles in SwiftUI development.

    • Structuring our app using MVVM.

    • Using Observables locally and in the environment for data management in MVVM.

    • Lab 6: Building an app with MVVM - Restructuring a simple app using the MVVM pattern.

    Asynchronous calls with SwiftUI

    • Example UIKit app using callback for async operations (brief review).

    • Equivalent in SwiftUI with observable results and data flow.

    • Using Environment objects or Observable objects as managers for asynchronous operations (e.g., networking).

    • Lab 7a: Accessing web services - Fetching data from a remote API and displaying it.

    • Lab 7b: Reading continuous data - Handling data streams or updates.

    Linking SwiftUI to your UIKit app

    • Understanding the ways of linking SwiftUI and UIKit.

    • Extending SwiftUI by linking to or embedding a UIKit screen (UIViewControllerRepresentable).

    • Extending UIKit by building in or embedding some SwiftUI (UIHostingController).

    • Lab 8a: Extending a network app to an in-app browser - Potentially integrating a UIKit WebView.

    • Lab 8b: Adding SwiftUI to your UIKit app - Embedding a SwiftUI view into a UIKit screen.

    • Lab 8c: Adding a UIKit view to a SwiftUI app - Embedding a UIKit view within SwiftUI.

    Final case study

    • Lab 9: Building chosen app - Participants will be given a case study app to build, such as a conference programme app with multiple screens and interaction. The case study is based on a real-world example (like the iOSDevUK conference app). Delegates will be provided with necessary components (ViewModel, model, data) but will apply learned SwiftUI concepts to build the UI and integrate the data.

    • Alternatively, where delegates have other specific challenges from their own work that they wish to explore, they will be supported in finding out how their challenges can be met using SwiftUI, applying the principles learned throughout the course.

Trusted by

CERN organisation logo Amadeus Services company logo CAPITA company logo

Public Courses Dates and Rates

Please get in touch for pricing and availability.

Related courses