“When quality is critical"

Slides:



Advertisements
Similar presentations
Software Testing with Visual Studio 2013 & Team Foundation Server 2013 Benjamin Day.
Advertisements

Why Use Test Driven Development (TDD)?.  Why the need to change to TDD.  Talk about what TDD is.  Talk about the expectations of TDD.
SOLID Object Oriented Design Craig Berntson
E-commerce Project Erik Zeitler Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Test-Driven Development “Test first, develop later!” –OCUnit.
Test Driven Development Derived from Dr. Fawcett’s notes Phil Pratt-Szeliga Fall 2009.
CZ Biz. Auto. System & Test-Driven Development Teoman Soygul (Sept 24, 2012).
Test Driven Development An approach to writing better code Jimmy Zimmerman Intel Corporation.
Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - Presented to CS 611 at GVSU, 4/6/2005.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Agile Concepts - II “Agile” Estimating & Planning Nupul Kukreja 5 th November, 2014.
Test-Driven Development Eduard Miric ă. The problem.
Five design principles
1 Presentation Title Test-driven development (TDD) Overview David Wu.
Refactoring and Integration Testing or Strategy, introduced reliably by TDD The power of automated tests.
Beginning Software Craftsmanship Brendan Enrick Steve Smith
 System Requirement Specification and System Planning.
Here’s Why You Should Choose Website Builders over Other Options Squarespace allows you to add and move around your content (text, video, images, sounds,
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
Ionic Mobile App Development Services
Embedded Systems Software Engineering
Software Development.
Mental Health Mobile Phone Apps
Mantas Radzevičius ifm-2/2
Chapter 6 Understanding the Technical Writing Process
Effective Time Management
Programming paradigms
Test-Driven Development
Software Architecture & Difference from Design
Test Driven Development
Test Driven Development 1 November Agenda  What is TDD ?  Steps to start  Refactoring  TDD terminology  Benefits  JUnit  Mocktio  Continuous.
in All Office 365 Apps for Enterprise Companies
CSE 403 Software Engineering
Some time ago I wrote how peer java programming can help maintain high quality code. But that is not all! Today I want to explain why I should practice.
Extreme Programming.
How to be a Good Developer
Models of Software Development Life Cycle (SDLC)
CA16R405 - Mobile Application Development (Theory)
Aliexpress Clone Script to Empower Your eCommerce Business
How to be a Good Developer
Advanced Chatting App Development Company
Best Ios App Development Company
Johanna Rothman Create Technical Excellence Chapter 9
What do you need to know about XP?
Johanna Rothman Know What “Done” Means Chapter 11
(Test Driven) Software Development
Digital filing & note-taking
TDD adoption plan 11/20/2018.
Design and Programming
Lesson 5 Computer-Related Issues
Test-driven development (TDD)
11/29/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Sharing the good, the bad, the ugly & What can we do about it?
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
CS240: Advanced Programming Concepts
Practical Software Engineering
TDD & ATDD 1/15/2019.
Tioga Tae Kwon Do Student Management System
European conference.
Object Oriented Design & Analysis
that focus first on areas of risk.
Dependency Inversion principle
Agile Development.
Testing Slides adopted from John Jannotti, Brown University
Introduction to Software Testing
Presentation transcript:

“When quality is critical"

Professional development and modification of Android and iOS What do we do? Professional development and modification of Android and iOS Mobile apps

A comprehensive service From YOUR IDEA to Google Play / App Store

What services do we offer? Android and iOS app development – idea, wireframe, UI/UX design, architecture, code Wireframes and prototypes of mobile applications Backend CRM/CMSs and RESTful APIs for mobile applications Design and color themes for mobile apps Redesign mobile apps Adding new features to existing mobile apps Refactoring source code / Paying technical debt All kinds of testing of mobile apps (manual and automated) Bugfixing in timely fashion Creating documentation, user guides and technical guides for mobile apps Monthly support for mobile apps User behavior tracking and analysis for mobile apps

How does the development process go? Discussion and research on your idea or planned changes on an existing project Planning, scheduling and estimating the process Creating a prototype/wireframe of your app UI/UX Design – the user interface Writing specs and modeling the architecture of the app Adding module-based features, like plug-ins App getting tested by highly qualified professional QA Testers Bugfixing Releasing the app to Google play store / App Store Warranty period

What technologies we use? Clean Code Clean Architecture Model-View-Presenter Domain-Driven Development Design Patterns Keep it simple, stupid Test-Driven Development

What is the difference between Clean Code and Legacy Code ? Time spent implementing new functionality Time spent implementing new functionality Probability of breaking existing functionality Probability of breaking existing functionality Places in the code that need to be worked on when implementing new features

Clean Architecture

The way we implement the app core Domain-Driven Design The way we implement the app core

Model-View-Presenter

SOLID PRINCIPLEs SINGLE RESPONSIBILITY PRINCIPLE OPEN-CLOSED PRINCIPLE LISKOV SUBSTITUTION PRINCIPLE INTEGRATION SEGREGATION PRINCIPLE DEPENDENCY INVERSION PRINCIPLE

Design Patterns This is a group of frequently used patterns of resolving similar problems that have emerged time and time again, until they became wildly popular and recognized. Grouping them as design patterns was a successful attempt for a more uniform way of programming, universally known and accepted, to be achieved.

Unit and Integration testing Unit testing is the process of exercising code through other code, whose sole purpose it to pass arguments or create situations for our production code, and examine the results in order to verify its proper functioning. Integration testing is exercising the interactions between separate modules in the application. A module is placed in a situation or under a circumstance that calls for some action, and we examine if it calls the right action on another module Very few developers do unit and integration testing and even fewer do it right, but when done right it can bring tremendous value and saved hours, thus saved money for you

Keep it simple, stupid!!! Most of the technologies we use can create a huge mess in the hands of an unexperienced developer, so we always remember the Keep it simple, stupid (KISS) principle! We don’t prematurely add very advanced techniques and optimizations when something much simpler will do.

Test-Driven Development The benefits of Test-Driven Development When writing our tests first: the code we produce in order to satisfy them, is much more testable, which is a given with TDD, and it has been better decoupled, using better architecture you are thinking about the way an outside user of the classes you write, will use them, so we create those classes with much more conveyed intent, more readable, well arranged and understandable  we are required to write them and there is no way around it, and we don’t have to write them after the code. This way you avoid forcing yourself to write tests just to pass the requirement and basically write the happy path tests after the fact, which aren’t very useful and are annoying to write. something in your code breaks, you are a couple of editor steps away from the last working state of the code. A minute ago everything was working, so we know the bug introduced must have been in the last couple of tweaks you introduced. That way we can eliminate bugs on the spot and not worry about breaking the code while refactoring it. The amount of long hours spent in debugging is almost eliminated.

“Quality is critical" Why do we so many technologies? By now you could be asking yourself: Why do we so many technologies? The answer is: “Quality is critical"

Contact us: If you think you could use our help: Phone: +359 882 410 312 Contact us: E-mail: info@appopeia.com Skype: Appopeia App Development