Understanding the Lifecycle of Building and Publishing Applications

 
Software Developer
 
MTA: Section 1
 
Topics
 
Lifecycle of an Application
Manifest File
Security
Hosting
Licensing
Building your App
Debugging
Testing
Validating
Certifying your App
Publishing your App
 
Mobile applications
 
Web based
HTML5 etc
Can run in any browser or OS
Changes made on the server, no need to download
Avoids app store charges
Requires internet connection
Mobile based
No internet connection required
Faster than web apps
Specific to an OS and possibly device
Richer functionality – access to GPS, sensors, camera etc
 
Building an application in Windows
 
Windows 8: Mobile operating system was called Windows RT or Windows RunTime
Program in C#
Need Visual Studio and Windows Phone 8 SDK
 
Windows 10: Platform is now called UWP, Universal Windows Platform
Main components of an application
Services – databases/APIs/ cloud
Libraries – pre-existing code to save duplicate writing
Codebase – the code written by the developer
UIX - the user interface
 
 
Application container
 
AppContainers are a sandbox mechanism which control what resources an app can access or not
 
The sandbox is a separate controlled environment for each app
 
This is a security concept and prevents badly written apps from overwriting other apps or the
underlying OS
 
 
Application package
 
This contains all the information required to make the app available on an app store
You need:
All the files required to run the app, zipped up (Android.apk, IOS.app, Windows.exe.msi)
The apps capabilities
The required device capabilities
Pre-requisites
Dependencies
Compatibility
Security
 
This is all contained in a Manifest file eg Package.appxmanifest  for Windows
 
 
 
 
Manifest file  - XML
 
IDENTITY OF THE APPLICATION (WHAT IT IS CALLED)
Identify Name=“MyCompany.MySuite.MyApp” Version=“1.0.0.0”
 
PUBLISHER OF THE APP
Publisher=“CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry”>
 
DISPLAY NAME
<DisplayName>MyApp</DisplayName>
PUBLISHER DISPLAY NAME
<PublisherDisplayName>MyCompany</PublisherDisplayName>
PATH TO LOGO IMAGE
<Logo>images\icon.png</Logo>
 
 
 
 
 
 
Manifest file  - XML
 
PREREQUISITES (Minimum OS levels required before the application will be permitted to run)
<Prerequisites><OSMinVersion>6.2.1</OSMinVersion><OSMaxVersionTested>6.2.1</OSMaxVersionTested>
< /Prerequisites>
 
DEPENDENCIES OF THE APP
Other packages that this package requires
<Dependencies> <PackageDependency Name="Microsoft.WinJS.1.0" Publisher="CN=Microsoft Corporation,
O=Microsoft Corporation, L=Redmond, S=Washington, C=US" MinVersion="1.0.0.0"/> </Dependencies>
 
 
 
 
 
 
 
 
Manifest file  - XML
 
CAPABILITIES OF THE APP (WHAT IS IT GOING TO NEED PERMISSION TO ACCESS Eg.
NETWORK. GEOLOCATION, PHONE CONTACTS, CAMERA ETC.)
<Capabilities>
<Capability Name="internetClient"/>
<Capability Name="musicLibrary"/>
<Capability Name="videosLibrary"/>
<DeviceCapability Name="microphone"/>
<DeviceCapability Name="webcam"/>
</Capabilities>
 
The app must ask permission to use these capabilities
 
 
 
 
 
 
 
Manifest file  - XML
 
Security: Permissions
 
Permissions grant the ability for some code to execute other code
The developer declares which trust level their application needs in order to be able to run
This is known as "code access security".
 
In the Microsoft .NET framework  Full trust means that the application needs all rights that the .NET
framework provides
 
 
 
 
Authentication
 
Users can log in via a variety of methods determined by the programmer
 
Windows Authentication : handled by Windows
Database Authentication : handled by the programmer, eg via Login
Anonymous : zero authentication
 
 
 
 
Licensing
 
EULA End User License Agreement
Is what you agree to before you start using an application (I agree to these terms...)
Open Source
Permissive (BSD, MIT, and Apache)
Copyleft (GPL, LGPL, Eclipse Public License, Mozilla Public License, and Common Development and Distribution
License).
Copyleft enforces freedom of use (including all other rights) and grant subsequent users to modify, distribute, and
use the software as they please.
 
 
 
IDEs (integrated development environments)
 
IDE Development Platforms
Source code editor
Automated build process
Debugger
 
Examples
Android Studio
Xcode for IOS
Visual Studio
IntelliJ for Java
Xamarin – cross platform
 
 
 
Software development lifecycle
 
Analysis
Design
Build
Test
Release
Ongoing Maintenance
Documentation
 
 
 
Building the app
 
Using an SDK
 
Windows SDK for UWP (Universal Windows Platform) apps
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
 
Android SDK - Studio
https://developer.android.com/studio/index.html
 
IOS SDK  - Xcode
https://developer.apple.com
 
 
 
Debugging
 
There are five parts to the debugging workflow:
Discover. Identify a problem.
Locate. Determine where in the code the problem occurs.
Inspect. Examine the control flow and data structures of the running code to find the cause of the problem.
Fix. Apply your insight into the cause of the problem to devise a solution and edit the code to suit.
Confirm. After editing, run the app and check it with the debugger to be sure the fix was successful.
Different Types of Errors
Syntax Error
Logical Error
Exception
 
 
 
Debugging tools
 
Set, activate or deactivate breakpoints
Pause or resume execution of your code
Step over; that is, execute the current line of code and, if the current line is a function or method, step
out to the next line in the current file
Step in; that is, execute the current line of code and, if the current line is a routine, jump to the first line
of that routine
Step out of a jumped-to routine; that is, complete the current routine and step to the next routine or
back to the calling routine.
Variable viewer
Source editor
 
 
 
Testing and validating
 
Testing
Unit Testing
Integration Testing
System Testing
Touch Screen Testing
Can use mouse Touch events
Can use an Emulator to simulate touch events
Validating Your App
W3C Page Validation
https://www.w3.org/developers/tools/ http://ready.mobi/Unit Testing/
 
 
 
Certifying
 
Windows App Certification Kit
https://msdn.microsoft.com/en-us/library/mt637086%28v=vs.85%29.aspx?f=255&MSPPError=-
2147217396
https://developer.microsoft.com/en-us/windows/develop/app-certification-kit
https://msdn.microsoft.com/en-us/library/mt674655(v=vs.85).aspx
https://msdn.microsoft.com/en-us/windows/uwp/debug-test-perf/windows-app-certification-kit
https://msdn.microsoft.com/en-us/library/windows/hardware/br230771(v=vs.85).aspx
 
 
 
Publishing
 
Licensing Issues eg. EULA Publishing To The Windows Store
https://developer.microsoft.com/en-us/store/publish-apps
Publishing To The Android Store
https://developer.android.com/studio/publish/index.html
https://developer.android.com/studio/publish/app-signing.html
Publishing To The IOS Store
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/Su
bmittingYourApp/SubmittingYourApp.html#//apple_ref/doc/uid/TP40012582-CH9-SW1
https://code.tutsplus.com/tutorials/how-to-submit-an-ios-app-to-the-app-store--mobile-16812
https://developer.apple.com/app-store/review/guidelines/
 
 
Slide Note
Embed
Share

Explore the comprehensive process of software development, from creating manifest files to deploying and certifying applications. Delve into topics such as application security, hosting, licensing, debugging, and more. Learn about mobile and web-based applications, differences between various platforms like Windows 8 and Windows 10, and the importance of application containers and packages.


Uploaded on Aug 31, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Software Developer MTA: Section 1

  2. Topics Lifecycle of an Application Manifest File Security Hosting Licensing Building your App Debugging Testing Validating Certifying your App Publishing your App

  3. Mobile applications Web based HTML5 etc Can run in any browser or OS Changes made on the server, no need to download Avoids app store charges Requires internet connection Mobile based No internet connection required Faster than web apps Specific to an OS and possibly device Richer functionality access to GPS, sensors, camera etc

  4. Building an application in Windows Windows 8: Mobile operating system was called Windows RT or Windows RunTime Program in C# Need Visual Studio and Windows Phone 8 SDK Windows 10: Platform is now called UWP, Universal Windows Platform Main components of an application Services databases/APIs/ cloud Libraries pre-existing code to save duplicate writing Codebase the code written by the developer UIX - the user interface

  5. Application container AppContainers are a sandbox mechanism which control what resources an app can access or not The sandbox is a separate controlled environment for each app This is a security concept and prevents badly written apps from overwriting other apps or the underlying OS

  6. Application package This contains all the information required to make the app available on an app store You need: All the files required to run the app, zipped up (Android.apk, IOS.app, Windows.exe.msi) The apps capabilities The required device capabilities Pre-requisites Dependencies Compatibility Security This is all contained in a Manifest file eg Package.appxmanifest for Windows

  7. Manifest file - XML IDENTITY OF THE APPLICATION (WHAT IT IS CALLED) Identify Name= MyCompany.MySuite.MyApp Version= 1.0.0.0 PUBLISHER OF THE APP Publisher= CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry > DISPLAY NAME <DisplayName>MyApp</DisplayName> PUBLISHER DISPLAY NAME <PublisherDisplayName>MyCompany</PublisherDisplayName> PATH TO LOGO IMAGE <Logo>images\icon.png</Logo>

  8. Manifest file - XML PREREQUISITES (Minimum OS levels required before the application will be permitted to run) <Prerequisites><OSMinVersion>6.2.1</OSMinVersion><OSMaxVersionTested>6.2.1</OSMaxVersionTested> < /Prerequisites> DEPENDENCIES OF THE APP Other packages that this package requires <Dependencies> <PackageDependency Name="Microsoft.WinJS.1.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" MinVersion="1.0.0.0"/> </Dependencies>

  9. Manifest file - XML CAPABILITIES OF THE APP (WHAT IS IT GOING TO NEED PERMISSION TO ACCESS Eg. NETWORK. GEOLOCATION, PHONE CONTACTS, CAMERA ETC.) <Capabilities> <Capability Name="internetClient"/> <Capability Name="musicLibrary"/> <Capability Name="videosLibrary"/> <DeviceCapability Name="microphone"/> <DeviceCapability Name="webcam"/> </Capabilities> The app must ask permission to use these capabilities

  10. Manifest file - XML Security: Permissions Permissions grant the ability for some code to execute other code The developer declares which trust level their application needs in order to be able to run This is known as "code access security". In the Microsoft .NET framework Full trust means that the application needs all rights that the .NET framework provides

  11. Authentication Users can log in via a variety of methods determined by the programmer Windows Authentication : handled by Windows Database Authentication : handled by the programmer, eg via Login Anonymous : zero authentication

  12. Licensing EULA End User License Agreement Is what you agree to before you start using an application (I agree to these terms...) Open Source Permissive (BSD, MIT, and Apache) Copyleft (GPL, LGPL, Eclipse Public License, Mozilla Public License, and Common Development and Distribution License). Copyleft enforces freedom of use (including all other rights) and grant subsequent users to modify, distribute, and use the software as they please.

  13. IDEs (integrated development environments) IDE Development Platforms Source code editor Automated build process Debugger Examples Android Studio Xcode for IOS Visual Studio IntelliJ for Java Xamarin cross platform

  14. Software development lifecycle Analysis Design Build Test Release Ongoing Maintenance Documentation

  15. Building the app Using an SDK Windows SDK for UWP (Universal Windows Platform) apps https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk Android SDK - Studio https://developer.android.com/studio/index.html IOS SDK - Xcode https://developer.apple.com

  16. Debugging There are five parts to the debugging workflow: Discover. Identify a problem. Locate. Determine where in the code the problem occurs. Inspect. Examine the control flow and data structures of the running code to find the cause of the problem. Fix. Apply your insight into the cause of the problem to devise a solution and edit the code to suit. Confirm. After editing, run the app and check it with the debugger to be sure the fix was successful. Different Types of Errors Syntax Error Logical Error Exception

  17. Debugging tools Set, activate or deactivate breakpoints Pause or resume execution of your code Step over; that is, execute the current line of code and, if the current line is a function or method, step out to the next line in the current file Step in; that is, execute the current line of code and, if the current line is a routine, jump to the first line of that routine Step out of a jumped-to routine; that is, complete the current routine and step to the next routine or back to the calling routine. Variable viewer Source editor

  18. Testing and validating Testing Unit Testing Integration Testing System Testing Touch Screen Testing Can use mouse Touch events Can use an Emulator to simulate touch events Validating Your App W3C Page Validation https://www.w3.org/developers/tools/ http://ready.mobi/Unit Testing/

  19. Certifying Windows App Certification Kit https://msdn.microsoft.com/en-us/library/mt637086%28v=vs.85%29.aspx?f=255&MSPPError=- 2147217396 https://developer.microsoft.com/en-us/windows/develop/app-certification-kit https://msdn.microsoft.com/en-us/library/mt674655(v=vs.85).aspx https://msdn.microsoft.com/en-us/windows/uwp/debug-test-perf/windows-app-certification-kit https://msdn.microsoft.com/en-us/library/windows/hardware/br230771(v=vs.85).aspx

  20. Publishing Licensing Issues eg. EULA Publishing To The Windows Store https://developer.microsoft.com/en-us/store/publish-apps Publishing To The Android Store https://developer.android.com/studio/publish/index.html https://developer.android.com/studio/publish/app-signing.html Publishing To The IOS Store https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/Su bmittingYourApp/SubmittingYourApp.html#//apple_ref/doc/uid/TP40012582-CH9-SW1 https://code.tutsplus.com/tutorials/how-to-submit-an-ios-app-to-the-app-store--mobile-16812 https://developer.apple.com/app-store/review/guidelines/

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#