SlideShare a Scribd company logo
Mohamed Taman @_tamanm
Enterprise Architect / Innovation & R&D Sr. manager @e-finance
Java Champion
Why Software Architecture
(Mobile Architecture)
Me, I, and Myself
• Java Champion, and Java Geek
• Enterprise Architect / Innovation & R&D Sr. Manager @efinance
• Mobile/Web/Blockchain/HashGraph/Cloud/DevOps/Big Data/IoT
• JCP (Won Duke’s choice award 2013, 2014, 2015)
• Speaks Java (Won Outstanding adopt-a-jsr participant 2013 JCP annual award)
• International Speaker
• Author (“JavaFX 8 essentials”, and upcoming “Mastering JDK 9” Video training
for Packt and Lynda.com)
Mohamed Taman @_tamanm
Reach me on
@_tamanm
http://eg.linkedin.com/in/mohamedtaman/
https://www.facebook.com/mohamed.m.taman.7 (Mohamed Mahmoud Taman)
http://tamanmohamed.blogspot.com
https://github.com/mohamed-taman
https://www.slideshare.net/tamanm
Software Architecture why Do We Need It?
• Like any other complex structure, software must be built on a solid foundation.
Failing to consider key scenarios, failing to design for common problems, or failing
to appreciate the long term consequences of key decisions can put your
application at risk.
• With no architecture in place, the code grew like ivy on a moisty garden shed,
resulting in poor maintainability and low productivity in adding new features to
the software.
Mohamed Taman @_tamanm
What is Software Architecture?
• Software application architecture is the process of defining a structured solution
that meets all of the technical and operational requirements, while optimizing
common quality attributes such as performance, security, and manageability.
• It involves a series of decisions based on a wide range of factors, and each of
these decisions can have considerable impact on the quality, performance,
maintainability, and overall success of the application.
Mohamed Taman @_tamanm
Concerns when thinking about software
architecture
• How will the users be using the application?
• How will the application be deployed into production and managed?
• What are the quality attribute requirements for the application, such as security,
performance, concurrency, internationalization, and configuration?
• How can the application be designed to be flexible and maintainable over time?
• What are the architectural trends that might impact your application now or
after it has been deployed?
Mohamed Taman @_tamanm
The Goals of Architecture
• Expose the structure of the system but hide the implementation details.
• Realize all of the use cases and scenarios.
• Try to address the requirements of various stakeholders.
• Handle both functional and quality requirements.
Mohamed Taman @_tamanm
Software Architecture offers some rather
relevant benefits
• Higher productivity. It is easier to add new features to existing software, since the structure is already
in place, and the location for every new piece of code is known beforehand.
• Better code maintainability. It is easier to maintain existing software, as the structure of the code is
visible and known, so it’s easier to find bugs and anomalies.
• Higher adaptability. New technical features, such a different front ends, or adding a business rule
engine are easier to achieve, as your software architecture creates a clear separation of concerns.
• Hype agnostic. Last but not least, it will allow you to see hypes and fads in the industry – or which
there are a lot – in the light of your current structure, and to fit these hypes and fads in if so required.
Mohamed Taman @_tamanm
Basic Building Block: OOP
• Encapsulation
• Composition, inheritance, and delegation
• Polymorphism
Mohamed Taman @_tamanm
OOP principals is the foundation to “Design Patterns”.
What is mobile application?
• A mobile application, most commonly referred to as an app, is a type of application software
designed to run on a mobile device, such as a smartphone or tablet computer.
• A mobile app is a software application developed specifically for use on small, wireless computing
devices, such as smartphones and tablets, rather than desktop or laptop computers.
• Mobile apps are designed with consideration for the demands and constraints of the devices and
also to take advantage of any specialized capabilities they have. A gaming app, for example, might
take advantage of the iPhone's accelerometer.
Mohamed Taman @_tamanm
What is mobile Website ?
The mobile web refers to access to the world wide web, i.e. the use of
browser-based Internet services, from a handheld mobile device, such
as a smartphone or a feature phone, connected to a mobile network or
other wireless network.
Mohamed Taman @_tamanm
What is mobile application architecture?
Mobile Application Architecture is set of techniques and patterns to
build fully structured mobile applications based on industry and vendor
specific standards and procedures those works on wireless mobile
devices like smartphones and tablets.
Mohamed Taman @_tamanm
Mobile Architecture Objectives
• Define a mobile application.
• Understand components found in a mobile application.
• Learn the key scenarios where mobile applications would be used.
• Learn the design considerations for mobile applications.
• Identify specific scenarios for mobile applications, such as deployment, power usage, and
synchronization.
• Learn the key patterns and technology considerations for designing mobile applications.
Mohamed Taman @_tamanm
Designing
Mobile
Applications
Mohamed Taman @_tamanm
General Design Considerations
• Decide if you will build a rich client, a thin Web client, or a Hybrid app.
• Determine the device types you will support.
• Consider occasionally connected and limited-bandwidth scenarios when appropriate.
• Design a UI appropriate for mobile devices, taking into account platform constraints.
• Design a layered architecture appropriate for mobile devices that improves reuse and maintainability.
• Consider device resource constraints such as battery life, memory size, and processor speed.
Mohamed Taman @_tamanm
Specific Design Issues
• Authentication and Authorization
• Caching
• Communication
• Configuration Management
• Data Access
• Device Specifics
• Exception Management
Mohamed Taman @_tamanm
• Logging
• Porting Applications
• Power Management
• Synchronization
• Testing
• User Interface
• Validation
Mobile Application types
Mohamed Taman @_tamanm
Supported
features
Mohamed Taman @_tamanm
Pros and Cons
Mohamed Taman @_tamanm
How Hybrid apps works?
Mohamed Taman @_tamanm
Resources and references
• https://prezi.com/dsuuipwgdzfc/developing-mobile-apps-hybrid-android-with-
netbeans-8/
• https://www.slideshare.net/hassandar18/architecture-of-mobile-software-
applications
• https://en.wikipedia.org/wiki/Object-oriented_programming
• https://www.codeproject.com/Articles/1064240/Introduction-to-Software-
Architecture
• https://msdn.microsoft.com/en-us/library/ee658098.aspx
• https://msdn.microsoft.com/en-us/library/ee658108.aspx
Mohamed Taman @_tamanm
Mohamed Taman @_tamanm

More Related Content

What's hot

Introduction to Mobile Apps
Introduction to Mobile Apps Introduction to Mobile Apps
Introduction to Mobile Apps
Shahryar Khan
 
Introduction to Mobile Application Development on Android
Introduction to Mobile Application Development on AndroidIntroduction to Mobile Application Development on Android
Introduction to Mobile Application Development on Android
Julian Shen
 
Tk2323 lecture 1 introduction to mobile application
Tk2323 lecture 1   introduction to mobile applicationTk2323 lecture 1   introduction to mobile application
Tk2323 lecture 1 introduction to mobile application
MengChun Lam
 
Building Cross Platform Mobile Applications
Building Cross Platform Mobile ApplicationsBuilding Cross Platform Mobile Applications
Building Cross Platform Mobile Applications
Betclic Everest Group Tech Team
 
Why MDM Alone Falls Short
Why MDM Alone Falls ShortWhy MDM Alone Falls Short
Why MDM Alone Falls Short
Kony, Inc.
 
Mobile application design & development
Mobile application design & developmentMobile application design & development
Mobile application design & development
Mobile App Developers India
 
Should you say no to HTML5?
Should you say no to HTML5?Should you say no to HTML5?
Should you say no to HTML5?
Kony, Inc.
 
Mobile development intro
Mobile development introMobile development intro
Mobile development intro
Khaled Annajar
 
8 steps to a long term mobile strategy
8 steps to a long term mobile strategy 8 steps to a long term mobile strategy
8 steps to a long term mobile strategy
Kony, Inc.
 
Mobile application design trend & history
Mobile application design trend & historyMobile application design trend & history
Mobile application design trend & history
Rawin Windygallery
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonny
Lama K Banna
 
The Mobile Ecosystem
The Mobile EcosystemThe Mobile Ecosystem
The Mobile Ecosystem
Ivano Malavolta
 
Intro To Mobile App Development
Intro To Mobile App DevelopmentIntro To Mobile App Development
Intro To Mobile App Development
Jay Dadarkar
 
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile DevelopmentNative vs. Mobile Web vs. Hybrid Apps for Mobile Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
Jason Grigsby
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
Changwon National University
 
Lecture 1
Lecture 1Lecture 1
Mobile app development
Mobile app developmentMobile app development
Mobile app development
action.vn
 
Best Mobile App Development Services in India
Best Mobile App Development Services in IndiaBest Mobile App Development Services in India
Best Mobile App Development Services in India
Steve Verma
 
Designing for Tablet Experiences (Henrik Olsen)
Designing for Tablet Experiences (Henrik Olsen)Designing for Tablet Experiences (Henrik Olsen)
Designing for Tablet Experiences (Henrik Olsen)
Autodesk
 
Web2.0 Tablet Experience Design Workshop
Web2.0 Tablet Experience Design WorkshopWeb2.0 Tablet Experience Design Workshop
Web2.0 Tablet Experience Design Workshop
henrikolsen123
 

What's hot (20)

Introduction to Mobile Apps
Introduction to Mobile Apps Introduction to Mobile Apps
Introduction to Mobile Apps
 
Introduction to Mobile Application Development on Android
Introduction to Mobile Application Development on AndroidIntroduction to Mobile Application Development on Android
Introduction to Mobile Application Development on Android
 
Tk2323 lecture 1 introduction to mobile application
Tk2323 lecture 1   introduction to mobile applicationTk2323 lecture 1   introduction to mobile application
Tk2323 lecture 1 introduction to mobile application
 
Building Cross Platform Mobile Applications
Building Cross Platform Mobile ApplicationsBuilding Cross Platform Mobile Applications
Building Cross Platform Mobile Applications
 
Why MDM Alone Falls Short
Why MDM Alone Falls ShortWhy MDM Alone Falls Short
Why MDM Alone Falls Short
 
Mobile application design & development
Mobile application design & developmentMobile application design & development
Mobile application design & development
 
Should you say no to HTML5?
Should you say no to HTML5?Should you say no to HTML5?
Should you say no to HTML5?
 
Mobile development intro
Mobile development introMobile development intro
Mobile development intro
 
8 steps to a long term mobile strategy
8 steps to a long term mobile strategy 8 steps to a long term mobile strategy
8 steps to a long term mobile strategy
 
Mobile application design trend & history
Mobile application design trend & historyMobile application design trend & history
Mobile application design trend & history
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonny
 
The Mobile Ecosystem
The Mobile EcosystemThe Mobile Ecosystem
The Mobile Ecosystem
 
Intro To Mobile App Development
Intro To Mobile App DevelopmentIntro To Mobile App Development
Intro To Mobile App Development
 
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile DevelopmentNative vs. Mobile Web vs. Hybrid Apps for Mobile Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Mobile app development
Mobile app developmentMobile app development
Mobile app development
 
Best Mobile App Development Services in India
Best Mobile App Development Services in IndiaBest Mobile App Development Services in India
Best Mobile App Development Services in India
 
Designing for Tablet Experiences (Henrik Olsen)
Designing for Tablet Experiences (Henrik Olsen)Designing for Tablet Experiences (Henrik Olsen)
Designing for Tablet Experiences (Henrik Olsen)
 
Web2.0 Tablet Experience Design Workshop
Web2.0 Tablet Experience Design WorkshopWeb2.0 Tablet Experience Design Workshop
Web2.0 Tablet Experience Design Workshop
 

Similar to Why software architecture (Mobile Architecture)?

architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applications
Hassan Dar
 
Importance of Mobile App Architecture For Mobile App Development
Importance of Mobile App Architecture For Mobile App DevelopmentImportance of Mobile App Architecture For Mobile App Development
Importance of Mobile App Architecture For Mobile App Development
Helios Solutions
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
Mohamed Tarek
 
Company profile TriCoSys Solutions Private Limited
Company profile TriCoSys Solutions Private LimitedCompany profile TriCoSys Solutions Private Limited
Company profile TriCoSys Solutions Private Limited
Subodh Deshpande
 
Engage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation StoryEngage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation Story
Jared Roberts
 
IN140703 service support technologies 8.9.2016
IN140703 service support technologies 8.9.2016IN140703 service support technologies 8.9.2016
IN140703 service support technologies 8.9.2016
Pirita Ihamäki
 
Overview of Enterprise Mobility
Overview of Enterprise MobilityOverview of Enterprise Mobility
Overview of Enterprise Mobility
Yuvaraj Ilangovan
 
TATA STEEL IDEATION - UNIFIED COMMUNICATION & COLLABORATION
TATA STEEL IDEATION - UNIFIED COMMUNICATION & COLLABORATIONTATA STEEL IDEATION - UNIFIED COMMUNICATION & COLLABORATION
TATA STEEL IDEATION - UNIFIED COMMUNICATION & COLLABORATION
Suman Kumar
 
CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT
Kongu Engineering College, Perundurai, Erode
 
How to Decide Technology Stack for Your Next Software Development Project?
How to Decide Technology Stack for Your Next Software Development Project?How to Decide Technology Stack for Your Next Software Development Project?
How to Decide Technology Stack for Your Next Software Development Project?
Polyxer Systems
 
What is your mobile strategy?
What is your mobile strategy?What is your mobile strategy?
What is your mobile strategy?
Emily Massey
 
IBM MobileFirst and Case Studies_Frank Müller_IBM Symposium 2013
IBM MobileFirst and Case Studies_Frank Müller_IBM Symposium 2013IBM MobileFirst and Case Studies_Frank Müller_IBM Symposium 2013
IBM MobileFirst and Case Studies_Frank Müller_IBM Symposium 2013
IBM Switzerland
 
MD-I-CH-ppt.ppt
MD-I-CH-ppt.pptMD-I-CH-ppt.ppt
MD-I-CH-ppt.ppt
bharatt7
 
IBM Digital Experience 2015 - APPLICATION MODERNIZATION IN THE DIGITAL EXPERI...
IBM Digital Experience 2015 - APPLICATION MODERNIZATION IN THE DIGITAL EXPERI...IBM Digital Experience 2015 - APPLICATION MODERNIZATION IN THE DIGITAL EXPERI...
IBM Digital Experience 2015 - APPLICATION MODERNIZATION IN THE DIGITAL EXPERI...
John Head
 
What the App? : A Modernization Strategy for Your Business Applications
What the App? : A Modernization Strategy for Your Business ApplicationsWhat the App? : A Modernization Strategy for Your Business Applications
What the App? : A Modernization Strategy for Your Business Applications
John Head
 
App Architecture for Efficient Mobile App Development.pdf
App Architecture for Efficient Mobile App Development.pdfApp Architecture for Efficient Mobile App Development.pdf
App Architecture for Efficient Mobile App Development.pdf
iDataScientists
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.pptIntroduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
BambangWahono3
 
Innovate 2013 session 1243 mobile testing.v3
Innovate 2013   session 1243 mobile testing.v3Innovate 2013   session 1243 mobile testing.v3
Innovate 2013 session 1243 mobile testing.v3
Leigh Williamson
 
Bring Your Legacy Applications to the Mobile World - DOAG 2014
Bring Your Legacy Applications to the Mobile World - DOAG 2014Bring Your Legacy Applications to the Mobile World - DOAG 2014
Bring Your Legacy Applications to the Mobile World - DOAG 2014
AuraPlayer
 
Is web application the best choice of future?
Is web application the best choice of future?Is web application the best choice of future?
Is web application the best choice of future?
Lava Infotech
 

Similar to Why software architecture (Mobile Architecture)? (20)

architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applications
 
Importance of Mobile App Architecture For Mobile App Development
Importance of Mobile App Architecture For Mobile App DevelopmentImportance of Mobile App Architecture For Mobile App Development
Importance of Mobile App Architecture For Mobile App Development
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
 
Company profile TriCoSys Solutions Private Limited
Company profile TriCoSys Solutions Private LimitedCompany profile TriCoSys Solutions Private Limited
Company profile TriCoSys Solutions Private Limited
 
Engage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation StoryEngage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation Story
 
IN140703 service support technologies 8.9.2016
IN140703 service support technologies 8.9.2016IN140703 service support technologies 8.9.2016
IN140703 service support technologies 8.9.2016
 
Overview of Enterprise Mobility
Overview of Enterprise MobilityOverview of Enterprise Mobility
Overview of Enterprise Mobility
 
TATA STEEL IDEATION - UNIFIED COMMUNICATION & COLLABORATION
TATA STEEL IDEATION - UNIFIED COMMUNICATION & COLLABORATIONTATA STEEL IDEATION - UNIFIED COMMUNICATION & COLLABORATION
TATA STEEL IDEATION - UNIFIED COMMUNICATION & COLLABORATION
 
CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT
 
How to Decide Technology Stack for Your Next Software Development Project?
How to Decide Technology Stack for Your Next Software Development Project?How to Decide Technology Stack for Your Next Software Development Project?
How to Decide Technology Stack for Your Next Software Development Project?
 
What is your mobile strategy?
What is your mobile strategy?What is your mobile strategy?
What is your mobile strategy?
 
IBM MobileFirst and Case Studies_Frank Müller_IBM Symposium 2013
IBM MobileFirst and Case Studies_Frank Müller_IBM Symposium 2013IBM MobileFirst and Case Studies_Frank Müller_IBM Symposium 2013
IBM MobileFirst and Case Studies_Frank Müller_IBM Symposium 2013
 
MD-I-CH-ppt.ppt
MD-I-CH-ppt.pptMD-I-CH-ppt.ppt
MD-I-CH-ppt.ppt
 
IBM Digital Experience 2015 - APPLICATION MODERNIZATION IN THE DIGITAL EXPERI...
IBM Digital Experience 2015 - APPLICATION MODERNIZATION IN THE DIGITAL EXPERI...IBM Digital Experience 2015 - APPLICATION MODERNIZATION IN THE DIGITAL EXPERI...
IBM Digital Experience 2015 - APPLICATION MODERNIZATION IN THE DIGITAL EXPERI...
 
What the App? : A Modernization Strategy for Your Business Applications
What the App? : A Modernization Strategy for Your Business ApplicationsWhat the App? : A Modernization Strategy for Your Business Applications
What the App? : A Modernization Strategy for Your Business Applications
 
App Architecture for Efficient Mobile App Development.pdf
App Architecture for Efficient Mobile App Development.pdfApp Architecture for Efficient Mobile App Development.pdf
App Architecture for Efficient Mobile App Development.pdf
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.pptIntroduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
 
Innovate 2013 session 1243 mobile testing.v3
Innovate 2013   session 1243 mobile testing.v3Innovate 2013   session 1243 mobile testing.v3
Innovate 2013 session 1243 mobile testing.v3
 
Bring Your Legacy Applications to the Mobile World - DOAG 2014
Bring Your Legacy Applications to the Mobile World - DOAG 2014Bring Your Legacy Applications to the Mobile World - DOAG 2014
Bring Your Legacy Applications to the Mobile World - DOAG 2014
 
Is web application the best choice of future?
Is web application the best choice of future?Is web application the best choice of future?
Is web application the best choice of future?
 

More from Mohamed Taman

Effective java se 11 through 12 ap is & language features, makes your lif...
Effective java se 11 through 12 ap is & language features, makes your lif...Effective java se 11 through 12 ap is & language features, makes your lif...
Effective java se 11 through 12 ap is & language features, makes your lif...
Mohamed Taman
 
Mohamed Taman short C.V version v1.0
Mohamed Taman short C.V version v1.0Mohamed Taman short C.V version v1.0
Mohamed Taman short C.V version v1.0
Mohamed Taman
 
Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.
Mohamed Taman
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
Mohamed Taman
 
Top 10 key performance techniques for hybrid mobile and web apps
Top 10 key performance techniques for hybrid mobile and web appsTop 10 key performance techniques for hybrid mobile and web apps
Top 10 key performance techniques for hybrid mobile and web apps
Mohamed Taman
 
Android development powered by Java SE 8
Android development powered by Java SE 8Android development powered by Java SE 8
Android development powered by Java SE 8
Mohamed Taman
 
Operating systems essentials & Android OS concepts
Operating systems essentials & Android OS conceptsOperating systems essentials & Android OS concepts
Operating systems essentials & Android OS concepts
Mohamed Taman
 
United nations UNHCR & WFP case study, a java success story
United nations UNHCR & WFP case study, a java success storyUnited nations UNHCR & WFP case study, a java success story
United nations UNHCR & WFP case study, a java success story
Mohamed Taman
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
Mohamed Taman
 
Drive yourself, community with adopts and jcp to professionalism
Drive yourself, community with adopts and jcp to professionalismDrive yourself, community with adopts and jcp to professionalism
Drive yourself, community with adopts and jcp to professionalism
Mohamed Taman
 
Learn HTML5 & JEE7 by doing
Learn HTML5 & JEE7 by doingLearn HTML5 & JEE7 by doing
Learn HTML5 & JEE7 by doing
Mohamed Taman
 

More from Mohamed Taman (11)

Effective java se 11 through 12 ap is & language features, makes your lif...
Effective java se 11 through 12 ap is & language features, makes your lif...Effective java se 11 through 12 ap is & language features, makes your lif...
Effective java se 11 through 12 ap is & language features, makes your lif...
 
Mohamed Taman short C.V version v1.0
Mohamed Taman short C.V version v1.0Mohamed Taman short C.V version v1.0
Mohamed Taman short C.V version v1.0
 
Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
 
Top 10 key performance techniques for hybrid mobile and web apps
Top 10 key performance techniques for hybrid mobile and web appsTop 10 key performance techniques for hybrid mobile and web apps
Top 10 key performance techniques for hybrid mobile and web apps
 
Android development powered by Java SE 8
Android development powered by Java SE 8Android development powered by Java SE 8
Android development powered by Java SE 8
 
Operating systems essentials & Android OS concepts
Operating systems essentials & Android OS conceptsOperating systems essentials & Android OS concepts
Operating systems essentials & Android OS concepts
 
United nations UNHCR & WFP case study, a java success story
United nations UNHCR & WFP case study, a java success storyUnited nations UNHCR & WFP case study, a java success story
United nations UNHCR & WFP case study, a java success story
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
 
Drive yourself, community with adopts and jcp to professionalism
Drive yourself, community with adopts and jcp to professionalismDrive yourself, community with adopts and jcp to professionalism
Drive yourself, community with adopts and jcp to professionalism
 
Learn HTML5 & JEE7 by doing
Learn HTML5 & JEE7 by doingLearn HTML5 & JEE7 by doing
Learn HTML5 & JEE7 by doing
 

Why software architecture (Mobile Architecture)?

  • 1. Mohamed Taman @_tamanm Enterprise Architect / Innovation & R&D Sr. manager @e-finance Java Champion Why Software Architecture (Mobile Architecture)
  • 2. Me, I, and Myself • Java Champion, and Java Geek • Enterprise Architect / Innovation & R&D Sr. Manager @efinance • Mobile/Web/Blockchain/HashGraph/Cloud/DevOps/Big Data/IoT • JCP (Won Duke’s choice award 2013, 2014, 2015) • Speaks Java (Won Outstanding adopt-a-jsr participant 2013 JCP annual award) • International Speaker • Author (“JavaFX 8 essentials”, and upcoming “Mastering JDK 9” Video training for Packt and Lynda.com) Mohamed Taman @_tamanm
  • 3. Reach me on @_tamanm http://eg.linkedin.com/in/mohamedtaman/ https://www.facebook.com/mohamed.m.taman.7 (Mohamed Mahmoud Taman) http://tamanmohamed.blogspot.com https://github.com/mohamed-taman https://www.slideshare.net/tamanm
  • 4. Software Architecture why Do We Need It? • Like any other complex structure, software must be built on a solid foundation. Failing to consider key scenarios, failing to design for common problems, or failing to appreciate the long term consequences of key decisions can put your application at risk. • With no architecture in place, the code grew like ivy on a moisty garden shed, resulting in poor maintainability and low productivity in adding new features to the software. Mohamed Taman @_tamanm
  • 5. What is Software Architecture? • Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability. • It involves a series of decisions based on a wide range of factors, and each of these decisions can have considerable impact on the quality, performance, maintainability, and overall success of the application. Mohamed Taman @_tamanm
  • 6. Concerns when thinking about software architecture • How will the users be using the application? • How will the application be deployed into production and managed? • What are the quality attribute requirements for the application, such as security, performance, concurrency, internationalization, and configuration? • How can the application be designed to be flexible and maintainable over time? • What are the architectural trends that might impact your application now or after it has been deployed? Mohamed Taman @_tamanm
  • 7. The Goals of Architecture • Expose the structure of the system but hide the implementation details. • Realize all of the use cases and scenarios. • Try to address the requirements of various stakeholders. • Handle both functional and quality requirements. Mohamed Taman @_tamanm
  • 8. Software Architecture offers some rather relevant benefits • Higher productivity. It is easier to add new features to existing software, since the structure is already in place, and the location for every new piece of code is known beforehand. • Better code maintainability. It is easier to maintain existing software, as the structure of the code is visible and known, so it’s easier to find bugs and anomalies. • Higher adaptability. New technical features, such a different front ends, or adding a business rule engine are easier to achieve, as your software architecture creates a clear separation of concerns. • Hype agnostic. Last but not least, it will allow you to see hypes and fads in the industry – or which there are a lot – in the light of your current structure, and to fit these hypes and fads in if so required. Mohamed Taman @_tamanm
  • 9. Basic Building Block: OOP • Encapsulation • Composition, inheritance, and delegation • Polymorphism Mohamed Taman @_tamanm OOP principals is the foundation to “Design Patterns”.
  • 10. What is mobile application? • A mobile application, most commonly referred to as an app, is a type of application software designed to run on a mobile device, such as a smartphone or tablet computer. • A mobile app is a software application developed specifically for use on small, wireless computing devices, such as smartphones and tablets, rather than desktop or laptop computers. • Mobile apps are designed with consideration for the demands and constraints of the devices and also to take advantage of any specialized capabilities they have. A gaming app, for example, might take advantage of the iPhone's accelerometer. Mohamed Taman @_tamanm
  • 11. What is mobile Website ? The mobile web refers to access to the world wide web, i.e. the use of browser-based Internet services, from a handheld mobile device, such as a smartphone or a feature phone, connected to a mobile network or other wireless network. Mohamed Taman @_tamanm
  • 12. What is mobile application architecture? Mobile Application Architecture is set of techniques and patterns to build fully structured mobile applications based on industry and vendor specific standards and procedures those works on wireless mobile devices like smartphones and tablets. Mohamed Taman @_tamanm
  • 13. Mobile Architecture Objectives • Define a mobile application. • Understand components found in a mobile application. • Learn the key scenarios where mobile applications would be used. • Learn the design considerations for mobile applications. • Identify specific scenarios for mobile applications, such as deployment, power usage, and synchronization. • Learn the key patterns and technology considerations for designing mobile applications. Mohamed Taman @_tamanm
  • 15. General Design Considerations • Decide if you will build a rich client, a thin Web client, or a Hybrid app. • Determine the device types you will support. • Consider occasionally connected and limited-bandwidth scenarios when appropriate. • Design a UI appropriate for mobile devices, taking into account platform constraints. • Design a layered architecture appropriate for mobile devices that improves reuse and maintainability. • Consider device resource constraints such as battery life, memory size, and processor speed. Mohamed Taman @_tamanm
  • 16. Specific Design Issues • Authentication and Authorization • Caching • Communication • Configuration Management • Data Access • Device Specifics • Exception Management Mohamed Taman @_tamanm • Logging • Porting Applications • Power Management • Synchronization • Testing • User Interface • Validation
  • 19. Pros and Cons Mohamed Taman @_tamanm
  • 20. How Hybrid apps works? Mohamed Taman @_tamanm
  • 21. Resources and references • https://prezi.com/dsuuipwgdzfc/developing-mobile-apps-hybrid-android-with- netbeans-8/ • https://www.slideshare.net/hassandar18/architecture-of-mobile-software- applications • https://en.wikipedia.org/wiki/Object-oriented_programming • https://www.codeproject.com/Articles/1064240/Introduction-to-Software- Architecture • https://msdn.microsoft.com/en-us/library/ee658098.aspx • https://msdn.microsoft.com/en-us/library/ee658108.aspx Mohamed Taman @_tamanm

Editor's Notes

  1. Decide if you will build a rich client, a thin Web client, or rich Internet application (RIA aka Hybrid). If your application requires local processing and must work in an occasionally connected scenario, consider designing a rich client. A rich client application will be more complex to install and maintain. If your application can depend on server processing and will always be fully connected, consider designing a thin client. If your application requires a rich UI, only limited access to local resources, and must be portable to other platforms, design an RIA client. Determine the device types you will support. When choosing which device types to support, consider screen size and resolution, CPU performance characteristics, memory and storage space, and development tool environment availability. In addition, factor in user requirements and organizational constraints. You may require specific hardware such as a global positioning system (GPS) or a camera, which may impact not only your application type, but also your device choice. Consider occasionally connected and limited-bandwidth scenarios when appropriate. If your mobile device is a stand-alone device, you will not need to account for connection issues. When network connectivity is required, mobile applications should handle cases when a network connection is intermittent or not available. It is vital in this case to design your caching, state management, and data access mechanisms with intermittent network connectivity in mind; batch communications for delivery when connectivity is available. Choose hardware and software protocols based on speed, power consumption, and granularity, and not just on ease of programming. Design a UI appropriate for mobile devices, taking into account platform constraints. Mobile devices require a simpler architecture, simpler UI, and other specific design decisions in order to work within the constraints imposed by the device hardware. Keep these constraints in mind and design specifically for the device instead of trying to reuse the architecture or UI from a desktop or Web application. The main constraints are memory, battery life, ability to adapt to difference screen sizes and orientations, security, and network bandwidth. Design a layered architecture appropriate for mobile devices that improves reuse and maintainability. Depending on the application type, multiple layers may be located on the device itself. Use the concept of layers to maximize separation of concerns, and to improve reuse and maintainability for your mobile application. However, aim to achieve the smallest footprint on the device by simplifying your design compared to a desktop or Web application. Consider device resource constraints such as battery life, memory size, and processor speed. Every design decision should take into account the limited CPU, memory, storage capacity, and battery life of mobile devices. Battery life is usually the most limiting factor in mobile devices. Backlighting, reading and writing to memory, wireless connections, specialized hardware, and processor speed all have an impact on the overall power usage. When the amount of memory available is low, the Windows Mobile operating system may ask your application to shut down or sacrifice cached data, slowing program execution. Optimize your application to minimize its power and memory footprint while considering performance during this process.