Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .browserslistrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
# npx browserslist


Chrome >=60
ChromeAndroid >=60
Firefox >=63
Chrome >=79
ChromeAndroid >=79
Firefox >=70
Firefox ESR
Edge >=79
Safari >=13
iOS >=13
Safari >=14
iOS >=14
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@ npm-debug.log*
/www

.vercel

# Local Netlify folder
.netlify
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# App Summit
# Conference App

This is a sample application demonstrating the combination of Auth Connect and Identity Vault in a real world application that is designed to run on iOS, Android and web.
This is a sample application demonstrating the combination of Auth Connect, Identity Vault and Secure Storage in a real world application that is designed to run on iOS, Android and web.

## TLDR

If you like the way authentication is handled in this app and would like to copy paste your way to freedom:
- [authentication.service.ts](src/app/services/authentication.service.ts) - Setup of Ionic Auth Connect with an authentication provider
- [vault.service.ts](src/app/services/vault.service.ts) - Setup of Ionic Identity Vault to support secure encryption of the auth token using biometrics
- [auth-guard.service.ts](src/app/services/auth-guard.service.ts) - The Angular service to check authentication when routing to a page
- [auth-guard.service.ts](src/app/services/auth-guard.service.ts) - Checks authentication when routing to a page
- [key.service.ts](src/app/services/key.service.ts) - Stores a unique ID which is used to encrypt our Secure Storage
- [api.service.ts](src/app/services/api.service.ts) - Gets responses from our API and caches results in Secure Storage
- [app-routing.module.ts](src/app/app-routing.module.ts) - The configuration of which routes are protected by the auth guard
- [app.component.ts](src/app/app.component.ts) - Authentication is checked on startup and resume
- [app.module.ts](src/app/app.module.ts) - Demonstrates initialization of the Vault before anything else can use the token
Expand Down
3 changes: 2 additions & 1 deletion android/app/capacitor.build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ dependencies {
implementation project(':capacitor-splash-screen')
implementation project(':capacitor-status-bar')
implementation project(':ionic-enterprise-auth')

implementation "net.zetetic:android-database-sqlcipher:4.5.2"
implementation "androidx.sqlite:sqlite:2.0.1"
}
apply from: "../../node_modules/@ionic-enterprise/identity-vault/src/android/ionicnativeauth.gradle"

Expand Down
4 changes: 2 additions & 2 deletions android/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">App Summit</string>
<string name="title_activity_main">App Summit</string>
<string name="app_name">Conference App</string>
<string name="title_activity_main">Conference App</string>
<string name="package_name">io.ionic.conferences.eas2021</string>
<string name="custom_url_scheme">io.ionic.conferences.eas2021</string>
<string name="ionic_app_id">60e11038</string>
Expand Down
4 changes: 4 additions & 0 deletions android/app/src/main/res/xml/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,9 @@
<param name="onload" value="true"/>
</feature>

<feature name="SQLitePlugin">
<param name="android-package" value="io.sqlc.SQLitePlugin"/>
</feature>


</widget>
154 changes: 154 additions & 0 deletions api/dist/agenda.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
[
{
"id": 1,
"title": "The Future of Enterprise App Development",
"speakerIds": [
1
],
"startTime": "08:00 AM",
"endTime": "09:00 AM",
"description": "The trends in enterprise app development are constantly evolving. Ionic works closely with enterprise engineering teams from around the world to shape the way we think about developing world-class applications.<p>Learn how Ionic layers enterprise offerings on top of an open source foundation. Max Lynch, CEO and co-founder at Ionic, will dive into the newest Ionic products and solutions, uncover some of the latest industry trends involving design systems, internet-of-things, and micro frontend technology, and share his vision for the future of app development.</p>"
},
{
"id": 2,
"title": "The 80/20 Rule and Building UX Superpowers",
"speakerIds": [
2
],
"startTime": "09:00 AM",
"endTime": "10:00 AM",
"description": "Software architecture describes the building blocks on which solutions are created. Done right, those building blocks can provide superpowers to your UX team. Tom will bring you end-to-end through a modern microservices architecture, and discuss the design that enables a modern user experience along with the technology and tools behind it. <p>Through a detailed breakdown of the client-side architecture and abstraction layers that provide clear separation of concerns and simplified unit testing, you’ll discover how US Foods delivers first-class web, mobile and tablet experiences.</p>"
},
{
"id": 3,
"title": "Between Standard and Flexibility: Volkswagen Group’s Multi-Brand Design System GroupUI",
"speakerIds": [
3,
27,
28,
24
],
"startTime": "10:00 AM",
"endTime": "11:00 AM",
"description": "Volkswagen Group’s full-stack design system GroupUI delivers a seamless experience from figma and sketch to web components built with Stencil JS—Ionic’s toolchain for building reusable, scalable design systems. In a multi-brand environment featuring over five brands—with more to come soon—a perfect collaboration between teams and brands is vital for success.<p> Discover how the designers at Volkswagen add value with maximum flexibility for their brands. Learn how they are managing collaboration, communication, and contribution in their cross-brand and interdisciplinary environment.</p>"
},
{
"id": 4,
"title": "Building Micro Frontends with StencilJS",
"speakerIds": [
4
],
"startTime": "11:00 AM",
"endTime": "11:30 AM",
"description": "Managing the Front-End for large organizations can be a difficult task; the larger the application, the greater the need to divide it into smaller and more manageable, de-centralized artifacts in order to deliver a clean and consistent user experience.<p>In this talk we will explore multiple ways in which enterprises can leverage Micro-Front-end Architecture and Web Components compiled by Stencil JS in order to simplify the development, deployment, and consumption of third party content into large Front-End applications.</p>"
},
{
"id": 5,
"title": "Speak Up: Employee Podcasting in the Age of Remote Work",
"speakerIds": [
5,
6
],
"startTime": "11:30 AM",
"endTime": "12:00 PM",
"description": "T-Mobile Human Resources has a small software development team, but big ideas. They first developed a media CMS with a tube-experience, and now they're on to their next big project: a mobile podcasting app for employees! <p>Learn about the team’s planning process, why they chose to build with Ionic, the challenges they've faced along the way, and why they would want to create such an app in the first place.</p>"
},
{
"id": 6,
"title": "Fleet Management: Bringing Wireless Technology to Construction Equipment",
"speakerIds": [
7,
22
],
"startTime": "12:00 PM",
"endTime": "12:30 PM",
"description": "Bobcat Machine IQ is a digital telematics system that helps Bobcat equipment owners access machine info in real time from any location or device. Owners can check the health, maintenance, security, and performance of each connected machine at any time. How did the engineers behind Machine IQ decide the best technology stack for their needs? <p>Learn how Doosan Bobcat integrated functionality like geofencing in their application, and how they incorporated Ionic Appflow into their CI/CD pipeline.</p>"
},
{
"id": 7,
"title": "Leveraging Mono Repositories for Enterprise Projects",
"speakerIds": [
11,
15,
16
],
"startTime": "12:30 PM",
"endTime": "13:15 PM",
"description": "We hear about it all the time: teams have built their applications as mono repositories and have had killer success across the board. Businesses benefit, technology benefits, performance improves—you name it and we've seen it! However, you may think monrepos won't work for you. You already have your infrastructure set up, and it would be way too much effort for your product team to migrate over, right? Wrong. <p>If you are a software lead with an existing product looking to learn how to transform your product and your team to a monorepo, then this presentation is for you. OpenForge will present to you real strategies and exact implementations for converting your current team into a monorepo team.</p>"
},
{
"id": 14,
"title": "Fireside Chat with Enterprise App Summit App Co-creator Matt Netkow",
"speakerIds": [
20,
21
],
"startTime": "13:15 PM",
"endTime": "13:30 PM",
"description": "Learn more about the new Enterprise App Summit application co-created by Matt Netkow, Liam DeBeasi, and Ben Sperry.<p>Built with Ionic technology including Live Updates, Capacitor, and Ionic’s own UI framework (the upcoming Ionic 6!) this app is designed to be updated quickly to bring the latest information to event participants, and provide a seamless experience across any device.</p>"
},
{
"id": 8,
"title": "Introducing Ionic 6: A Q&A with the Ionic Team",
"speakerIds": [
25,
19
],
"startTime": "13:30 PM",
"endTime": "14:30 PM",
"description": "We're excited to announce the release of Ionic 6! This release adds improved desktop support, overhauled components, iOS and Android design changes, and so much more. <p> Learn from Liam DeBeasi, Ionic's software developer and Ionic 6 project lead, as he dives into the decisions made to develop these features, specific framework version requirements, issues addressed with the new updates, and what's coming next after Ionic 6.</p>"
},
{
"id": 9,
"title": "Choosing a Technology Strategy for the Future",
"speakerIds": [
8,
9
],
"startTime": "14:30 PM",
"endTime": "15:00 PM",
"description": "Choosing a new technology framework for a global enterprise e-commerce solution can be difficult, especially when you need to sell the concept to internal stakeholders. Infrastructure, resource, support, and cost implications all come into play when making this crucial decision.<p>Learn how Norwex’s technical leaders chose Ionic’s solutions, leaned on Ionic’s world-class support and advisory team, and engaged with the Ionic community to quickly deliver their mission-critical applications to a global audience.</p>"
},
{
"id": 10,
"title": "Accelerated Solution Delivery with Micro Frontends",
"speakerIds": [
13
],
"startTime": "15:00 PM",
"endTime": "15:30 PM",
"description": "Discover how a micro-frontend architecture can accelerate multi-channel feature delivery with Ionic Hybrid, Portals, and Appflow. Robert Flagg, Engineering Director at Modus Create, will share how micro-frontends can impact cost, delivery cadence, and operational efficiencies.<p>You will also discover real examples of several enterprises that have achieved success with a micro-frontend architecture.</p>"
},
{
"id": 11,
"title": "Delivering Dynamic Mobile Experiences with Reusable Architecture and Live Updates",
"speakerIds": [
14,
26
],
"startTime": "15:30 PM",
"endTime": "16:00 PM",
"description": "AAA offers a dynamic experience to over 60 million customers around the United States. Broken into regions, AAA can deliver unique experiences to customers in different areas. Each region is responsible for their own application experience, but customers download the same application on the app stores. How does AAA deliver brand continuity across all regions while enabling club autonomy? <p>Discover how AAA achieves a balance of unique customer experience and app parity by reusing architecture, leveraging CI/CD pipelines to deliver a seamless user flow, and maintaining brand continuity with a centralized design system.</p>"
},
{
"id": 12,
"title": "Micro Frontends for Mobile with Ionic Portals",
"speakerIds": [
20,
23
],
"startTime": "16:00 PM",
"endTime": "16:30 PM",
"description": "App development is rapidly evolving. Applications were originally built using a monolithic approach—a single-tiered code base combining UI and data into a single platform. Now, companies are moving towards micro frontends, an architectural style where UI front-end are composed of independent components that can be built by different teams at different times, saving development time and costs.<p>Micro frontends need to be reusable and portable. They need to be able to communicate with other parts of the app, provide a seamless and virtually invisible to users, and be easy to update without updating the larger app. Given these points, web technology is a great way to deliver micro experiences not only for the web but for mobile as well.</p><p>Discover how using Ionic Portals will allow your team to deliver micro experiences on mobile apps.</p>"
},
{
"id": 13,
"title": "Conference Wrap-up",
"speakerIds": [
21
],
"startTime": "16:30 PM",
"endTime": "17:00 PM",
"description": "End of the day wrap-up with final thoughts."
}
]
57 changes: 57 additions & 0 deletions api/dist/companies.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
[
{
"id": 1,
"name": "Ionic",
"logoUrl": "assets/logos/company-ionic.png"
},
{
"id": 2,
"name": "US Foods",
"logoUrl": "assets/logos/company-us-foods.png"
},
{
"id": 3,
"name": "Volkswagen",
"logoUrl": "assets/logos/company-volkswagen.png"
},
{
"id": 4,
"name": "Amazon",
"logoUrl": "assets/logos/company-amazon.png"
},
{
"id": 5,
"name": "T-Mobile",
"logoUrl": "assets/logos/company-t-mobile.png"
},
{
"id": 6,
"name": "Doosan (Bobcat)",
"logoUrl": "assets/logos/company-bobcat.png"
},
{
"id": 7,
"name": "Norwex",
"logoUrl": "assets/logos/company-norwex.png"
},
{
"id": 9,
"name": "OpenForge",
"logoUrl": "assets/logos/company-openforge.png"
},
{
"id": 10,
"name": "Modus",
"logoUrl": "assets/logos/company-modus.png"
},
{
"id": 11,
"name": "AAA",
"logoUrl": "assets/logos/company-aaa.png"
},
{
"id": 13,
"name": "MAN Truck & Bus SE",
"logoUrl": "assets/logos/company-man.png"
}
]
Loading