This document provides tips and tools for developing an iPhone app from concept to product release. It covers conceptualizing the app idea, designing interfaces with tools like Balsamiq and Photoshop, developing with considerations for APIs, push notifications, and testing, distributing beta versions through services like TestFlight, monitoring performance on the App Store, and responding to user reviews. The overall process progresses from Concept to Design to Develop to Beta testing to Release.
My talk at CodeFest 2017 in Novosibirsk, Russia. I talk about the benefits of adding a app crawler to your build process. In todays Agile world it's becoming difficult to keep up with the amount of manual and exploratory testing with shorter and shorter sprint iterations. It's time to put machines to work and help take some of the load off of us!
My talk at CodeFest 2017 in Novosibirsk, Russia. I talk about the benefits of adding a app crawler to your build process. In todays Agile world it's becoming difficult to keep up with the amount of manual and exploratory testing with shorter and shorter sprint iterations. It's time to put machines to work and help take some of the load off of us!
Different Android Test Automation Frameworks - What Works You the Best?Bitbar
Watch a live presentation at http://offer.bitbar.com/different-android-testing-frameworks-what-works-you-the-best
Implementing the test automation as part of your daily activities can provide you an enormous value: coverage to detect bugs and errors, early and later during the development, reducing the costs of failure, save time through its repeatability and earlier verification. Today, there are bunch of different options available for testing frameworks on Android – what would work the best for you?
Stay tuned and join our upcoming webinars at http://bitbar.com/testing/webinars/
Functional Testing is system level , end-to-end testing of your app from a user's perspective. Automating the process of functional testing of your app offers several benefits – it saves time and effort, it's repeatable, simplifies regression testing, enables testing with large data sets and it can be tied into your Continuous Integration process. UI Automations is an automated functional test framework from Apple. Here, user interactions are driven by test scripts are written in JavaScript and executed using the Instruments Automation tool.
Appium Desktop is a new graphical interface for starting an Appium server and inspecting your app's structure via Appium. It's recently been developed by the Appium contributors at Sauce Labs and is currently in open beta. In this webinar we will take you on a tour of Appium Desktop and show how it can be used with the goal of making it easier to write tests for your apps.
Stop Testing (Only) The Functionality of Your Mobile Apps!Applitools
** Full webinar recording: https://youtu.be/F-AS7q4ANBc **
We have heard a lot about Mobile Testing and how it differs from Web-based testing. However, do you know there is more to test on Mobile than just functionality and device-related testing?
Listen to Appium expert, Justin Ison, and Sr. Automation Architect, Anand Bagmar, in this in-depth session, where they shared hands-on real-world examples that are critical to include in your Mobile Testing.
Talking points included:
* Understand when you need to go beyond regular testing approaches - ex: when to use real devices vs emulators/simulators; when to consider on-field testing along with beta/staged releases of your apps
* Be aware of the pitfalls - ex: insights from chaos/monkey testing, and ways to build observability into your app
* Learn techniques that reduce various risks along the Dev-Test-Release cycle - ex: accessibility and visual testing
This is the talk I gave at the 2019 Appium Conference in Bangalore, India. In this talk, I will go over the current challenges we face in today's development world, why we need more tools to help us keep pace, and cover how you can build your own crawler.
I've open sourced this tool and is available here for everyone to use: https://github.com/isonic1/Appium-Native-Crawler
See the video here => https://www.youtube.com/watch?v=u-gAn8bVbPg
Implementing Test Automation in Agile ProjectsDominik Dary
All new features at eBay Europe are developed using SCRUM. One key success factor for those projects is to have a reliable end-to-end test automation safety net. This presentation illustrates how in addition to a robust automation toolset it is essential to have an integrated approach to test automation design:
Test Aspects - Test Aspects are used to do the functional design of the end-to-end automation test cases. Since this is done upfront, the tester is able to focus on the what rather than the how.
Modeling of the Biz Domain Layer - The Biz Domain Layer is an abstraction layer above the user interface that is implemented in the test code. This layer is divided into pages and flows which are then used in the tests.
Test Implementation - Tests are written in Java, stored in SVN and are executed using the WebDriver Grid (Selenium2). Tests execution can be triggered by all team members via a continuous integration server (Hudson).
Lean Test Automation – it is important to retain and maintain the quality of the tests. Key success factors for this are: Code Reviews, Software Craftsmanship, Test Aspect Reviews and the “Definition of Done”.
Following an integrated approach to test automation ensures high efficiency, low overhead and easier maintenance.
Different Android Test Automation Frameworks - What Works You the Best?Bitbar
Watch a live presentation at http://offer.bitbar.com/different-android-testing-frameworks-what-works-you-the-best
Implementing the test automation as part of your daily activities can provide you an enormous value: coverage to detect bugs and errors, early and later during the development, reducing the costs of failure, save time through its repeatability and earlier verification. Today, there are bunch of different options available for testing frameworks on Android – what would work the best for you?
Stay tuned and join our upcoming webinars at http://bitbar.com/testing/webinars/
Functional Testing is system level , end-to-end testing of your app from a user's perspective. Automating the process of functional testing of your app offers several benefits – it saves time and effort, it's repeatable, simplifies regression testing, enables testing with large data sets and it can be tied into your Continuous Integration process. UI Automations is an automated functional test framework from Apple. Here, user interactions are driven by test scripts are written in JavaScript and executed using the Instruments Automation tool.
Appium Desktop is a new graphical interface for starting an Appium server and inspecting your app's structure via Appium. It's recently been developed by the Appium contributors at Sauce Labs and is currently in open beta. In this webinar we will take you on a tour of Appium Desktop and show how it can be used with the goal of making it easier to write tests for your apps.
Stop Testing (Only) The Functionality of Your Mobile Apps!Applitools
** Full webinar recording: https://youtu.be/F-AS7q4ANBc **
We have heard a lot about Mobile Testing and how it differs from Web-based testing. However, do you know there is more to test on Mobile than just functionality and device-related testing?
Listen to Appium expert, Justin Ison, and Sr. Automation Architect, Anand Bagmar, in this in-depth session, where they shared hands-on real-world examples that are critical to include in your Mobile Testing.
Talking points included:
* Understand when you need to go beyond regular testing approaches - ex: when to use real devices vs emulators/simulators; when to consider on-field testing along with beta/staged releases of your apps
* Be aware of the pitfalls - ex: insights from chaos/monkey testing, and ways to build observability into your app
* Learn techniques that reduce various risks along the Dev-Test-Release cycle - ex: accessibility and visual testing
This is the talk I gave at the 2019 Appium Conference in Bangalore, India. In this talk, I will go over the current challenges we face in today's development world, why we need more tools to help us keep pace, and cover how you can build your own crawler.
I've open sourced this tool and is available here for everyone to use: https://github.com/isonic1/Appium-Native-Crawler
See the video here => https://www.youtube.com/watch?v=u-gAn8bVbPg
Implementing Test Automation in Agile ProjectsDominik Dary
All new features at eBay Europe are developed using SCRUM. One key success factor for those projects is to have a reliable end-to-end test automation safety net. This presentation illustrates how in addition to a robust automation toolset it is essential to have an integrated approach to test automation design:
Test Aspects - Test Aspects are used to do the functional design of the end-to-end automation test cases. Since this is done upfront, the tester is able to focus on the what rather than the how.
Modeling of the Biz Domain Layer - The Biz Domain Layer is an abstraction layer above the user interface that is implemented in the test code. This layer is divided into pages and flows which are then used in the tests.
Test Implementation - Tests are written in Java, stored in SVN and are executed using the WebDriver Grid (Selenium2). Tests execution can be triggered by all team members via a continuous integration server (Hudson).
Lean Test Automation – it is important to retain and maintain the quality of the tests. Key success factors for this are: Code Reviews, Software Craftsmanship, Test Aspect Reviews and the “Definition of Done”.
Following an integrated approach to test automation ensures high efficiency, low overhead and easier maintenance.
Building an Open Source iOS app: lessons learnedWojciech Koszek
Building an Open Source iOS app: lessons learned
Dec 12, 2016, Hacker Dojo (Santa Clara), 6pm
In this talk I'm going to talk about lessons learned from building Sensorama (http://www.sensorama.org), an Open Source sensor platform for data science. The main theme of the talk will be Open Source: what is great about it, what is bad and how you must become a part of the Open Source community to really move quickly and benefit from it. For this project, I did both the code and the design, so you'll have a chance to see how solo-developer deals with time/feature constraints, which tools I've used and what my approach towards development in this mode is. In other words: I'll tell you what I did to stay sane. If the iOS development were a walk in a dark city park, this talk may turn out to be your flashlight. If you like it, star it at GitHub: https://github.com/wkoszek/sensorama-ios
Agenda
https://www.meetup.com/svmobiledev/events/235836893/
Materials
https://github.com/wkoszek/talks/tree/master/svmobiledev2016
Some links from the slides
Fake it till you make it presentation https://developer.apple.com/videos/play/wwdc2014/223
Designing for Future Hardware https://developer.apple.com/videos/play/wwdc2015/801/
References
WWW: http://www.sensorama.org
GitHub (code): https://github.com/wkoszek/sensorama-ios
GitHub (artwork): https://github.com/wkoszek/sensorama-artwork
Author
WWW: http://www.koszek.com
Twitter: https://twitter.com/wkoszek
LinkedIn: https://www.linkedin.com/in/wkoszek/
Email: wojciech (at) koszek.com
Mobile applications Development - Lecture 9
LAB
PhoneGap Development Environment
Debugging PhoneGap Applications
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
This talk looks at the challenges we are facing when prototyping for mobile and gives an overview about the tools and handy helpers that you can use to deliver tappable, sharable and testable prototypes.
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with AppiumSrijan Technologies
Speaker: Justin Ison
Check out the complete session slides here: http://www.srijan.net/webinar/mobile-...
This session dives into the history of Appium, and it's pros and cons. The speaker also looks at how to write a good test setup and collect meaningful data points. We look at quick demos and comparisons of how Appium significantly reduces test times.
And you definitely should hang around till the Q&A session, where participants pitch in with their issues and queries. The speaker answers all the questions, sharing additional information and tips on Appium.
This is the simple guide which helps even the beginners to develop an android app which gets the attention of the market. Build your basic app in few steps
Slides from a presentation I gave at these conferences:
— Big Design
— Front Porch
— Thunder Plains
— Web Afternoon
I co-presented at Big Design with Matt Baxter.
http://twitter.com/mbxtr
Tools/Processes for serious android app developmentGaurav Lochan
I've managed a team that developed serious android apps, and ended up dabbling with tools out there and processes/systems. Here is a quick summary of the various things to think about if you're serious about android development, and in some cases, my recommendations.
This covers:
IDE
Build
Source Control
Bug/Task tracking
Crash reporting
Analytics
Test Automation
Continuous Integration
Device Matrix testing
Performance testing
Beta testing
A/B testing
Backend-as-a-Service
This session is presented by Bess Ho at Silicon Valley Code Camp (SVCC) at Foothill College in 2009 Fall. This session covers the Apple review and submission procession and requirements. It reviews the image requirements, mockup and templates for iphone app.
Similar to iPhone App from concept to product (20)
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Knowledge engineering: from people to machines and back
iPhone App from concept to product
1. iPhone App
from concept to product
Tips & Tools to get the job done
Joey Simhon (@joeysim)
CTO and Co-Founder DoAT
2. Hello World
Growing Internet babies since 2000
Growing real ones since 2008
Passionate about engineering and the culture around it
Owned and managed a few businesses
Built and architected a few products
Bottom line - I must be a Persistent fella
4. My name is Joey and I’m a
procrastinator
“The best part about
procrastination is that
you are never bored”
5. Procrastination = Tools
I call it productive procrastination (an oxymoron)
I love finding new tools that solve real problems (which
I don’t necessarily have)
I’ll do my best to share the right tools to achieve what
you want, quickly and without re-inventing the wheel
9. The Erasable Marker
When you start with your first concept, try and envision
the core UI element of the product you’re try to build
Jot down how it looks & behaves.
Verify technical implementation boundaries (and be
sure to break some :) )
DoAT - Swiping between live apps
Concept
10. iPhone Screenshots
Take screenshots of things that get you emotional (love
it / hate it!)
Some of the work was already done for you
http://mobile-patterns.com/ (or god forbid
http://www.androidpatterns.com/ )
Concept
11. Mockups
When you need to communicate it to a larger /
distributed group of people
My tool of choice - Balsamiq
Concept
13. Photoshop
I’ll settle for paint / gimp / Paint.net for that matter
PSD to use - http://www.teehanlax.com/blog/
iphone-4-gui-psd-retina-display/
Design for x2 (Retina)
Ziv Meltzer wrote a post ‘bout it
http://blog.zivmeltzer.com/post/3628811523/tips-the-
design-process-for-ios-apps
Design
14. Your Hand
Reviewing a design on large screens is a NO GO.
Do it on your PHONE.
Easy solution - Send by email and save image to album
Tool - Liveview (for Mac)
http://zambetti.com/projects/liveview/
Design
15. Don’t forget to RTFM
Apple’s UI Guidelines is something you’d want to know
by heart when designing
http://developer.apple.com/library/ios/#documentation/
UserExperience/Conceptual/MobileHIG/Introduction/
Introduction.html
Design
17. API and Server Logic
Design your API early
Use static responses while you do
Try and keep as much logic on server’s end - easier
maintenance and cross platform future
If you work in a distributed manner - document your
API, you’ll move faster
We created Gondor for this
(coming to Apache’s near you soon. NGINXs too)
Develop
18. Create multiple targets
Will allow you to have your team install several versions
Will allow you to stage new server APIs as well
Will reduce the clutter and keep your logs / analytics
coherent
Create separate DefaultProperties.plist for each target
Do yourself a favor and use git
(Didn’t know wherelse to put it so...)
Develop
19. No such thing as alpha
Not always accurate (managed to prove it once... sorta)
But you will definitely find yourself with “legacy” POC
code running in production
Try and draw the line between experiments and THE
product
Don’t refactor before you’ve hit the ceiling but when
you have to - do it like mad
Develop
20. Incorporate URL Schemes
This is the link of the app era
Allows you be to be accessed in context?
Be sure to communicate it externally so others can use
it.
Some examples -
instagram://camera - launches their camera
lastfm://artist/Cher/similar - Cher similar artist radio
lastfm://globaltags/rock - Plays rock global tag radio
More examples - http://handleopenurl.com/scheme
Develop
21. Push notification
Make sure to at least enable basic
(default behavior is launching the app on swipe / View
button)
Urbanairship is a good starting point
http://urbanairship.com
Deep links are an important addition, you can respond
to launches from push messages
Develop
22. Metrics Driven Approach
Try and collect as many events and params as
possible cause you never know what question
comes up about user’s behavior
Tools - Flurry, Localytics, Google Analytics, Home
brew. Most will do event name + KV params
We use Flurry - has some disadvantages
The matrix is
update time | events support | user segmentation |
reporting
Develop
23. Understand iOS Simulator
There’s an inherent problem with it - it’s too darn fast
and has too much juice
Sometimes has weird issues
You don’t hold it in your hand
Good for coverage testing with different SDKs (e.g.
autoplay video on iOS 4.3.x)
Develop
25. Provisioning Beta Versions
You’ll start with IPAs sent by email
Supporting this is hell (“Yes, drag it to your iTunes, oh
you don’t have it.... blah blah blah”)
You can try using BetaBuilder
http://www.hanchorllc.com/betabuilder-for-ios/
TestFlight is our weapon of choice
http://testflightapp.com
There’s also HockeyKit (open source too)
http://hockeykit.net/
Beta
26. Stabilize - Crashes
The #1 tool to get you stability
and eliminate crashes - a
crash reporting tool
iPhone logs are worth nothing
without the debugging
symbols make sure you keep
them
PLCrashReporter and CREP
(“holly crep I got a new crash”)
Beta
27. Stabilize #2 - Memory
Static code analysis - 80/20 rule applies here
XCode Instrumentation tools - memory is the thing
you’d worry ‘bout most of the time
Beta
29. Text is all you got
Think about what you want to write
Competition texts is sometimes a good starting point
Autocomplete is one you’ll surface
Search results is the other
They are scored differently
Release
31. Take your time
Submit when you ready
Reject binary if things get messy
App approval took ~7 days
App updates took 1-5 days
Tool - http://148apps.biz/app-store-metrics/
Release
32. Monitor
iTunesConnect only keeps 14 days of past reports
And will only tell you how many downloads/updates
A combination of AppAnnie (free) and appFigures (paid)
will do the job
You can also setup a geckoboard if you want this info
and analytics shown together
Release
33. Respond to user reviews
This is a real-life case I had with one of our users
Release
34. Last bits
You can ask for an “expedited review” if you have a
good reason - we got an app approved within the day
before TC Disrupt
Use it wisely and rarely
CoreData and version updates - be careful here (and
any other local data)
WebViews can sometimes allow you to release
products faster
Release
35. Thank You.
Joey Simhon (@joeysim)
CTO and Co-Founder DoAT