The document describes refactoring a Twitter client app to follow the MVVM design pattern. Originally, the view controller handled fetching and displaying tweets directly. It was refactored to use a presenter class that fetches tweets and notifies the view controller when finished via a protocol. This decouples the data handling from the view controller and makes the code more testable.
The document describes code for testing a FavoriteListDataStore class that saves objects to a Realm database using Swift. It sets up a test spec with describe/context/it blocks to test saving a FavoriteListObject with the name "TestList". An expectation closure verifies that the saved object contains the correct name after saving. The FavoriteListDataStoreImpl class implements the saving functionality by adding the object to a Realm database transaction.
This document discusses software architecture patterns for iOS applications. It compares approaches like MVC, MVP, and MVVM, as well as concepts like dependency injection and clean architecture. It also provides references to additional resources on these topics, including links to slide presentations and articles about iOS application design.
This document discusses an iOS developer's work on ScrollingFollowView, a custom view that scrolls and follows other views. It includes the developer's GitHub and Twitter handles as well as their profile on Developers.io. Some key details about projects and technologies worked with are mentioned such as iOS and AWS but the document is difficult to understand due to the unusual formatting which includes emojis and symbols.
This document discusses a ScrollingFollowView library for iOS that allows a view to follow the scrolling of another scroll view. It provides a link to the GitHub repository for the library and explains that it notifies when the scroll view scrolls by calling a didScrolled method. It also mentions that the library was presented at an iOS conference in Japan.
The document describes refactoring a Twitter client app to follow the MVVM design pattern. Originally, the view controller handled fetching and displaying tweets directly. It was refactored to use a presenter class that fetches tweets and notifies the view controller when finished via a protocol. This decouples the data handling from the view controller and makes the code more testable.
The document describes code for testing a FavoriteListDataStore class that saves objects to a Realm database using Swift. It sets up a test spec with describe/context/it blocks to test saving a FavoriteListObject with the name "TestList". An expectation closure verifies that the saved object contains the correct name after saving. The FavoriteListDataStoreImpl class implements the saving functionality by adding the object to a Realm database transaction.
This document discusses software architecture patterns for iOS applications. It compares approaches like MVC, MVP, and MVVM, as well as concepts like dependency injection and clean architecture. It also provides references to additional resources on these topics, including links to slide presentations and articles about iOS application design.
This document discusses an iOS developer's work on ScrollingFollowView, a custom view that scrolls and follows other views. It includes the developer's GitHub and Twitter handles as well as their profile on Developers.io. Some key details about projects and technologies worked with are mentioned such as iOS and AWS but the document is difficult to understand due to the unusual formatting which includes emojis and symbols.
This document discusses a ScrollingFollowView library for iOS that allows a view to follow the scrolling of another scroll view. It provides a link to the GitHub repository for the library and explains that it notifies when the scroll view scrolls by calling a didScrolled method. It also mentions that the library was presented at an iOS conference in Japan.
The document discusses Magic Pod, a tool for testing iOS user interfaces. It mentions that Magic Pod can be used for testing iOS UI with XCUITest, developing AI and GUI interfaces, and using Appium. It also notes that Magic Pod has desktop functionality and can be integrated with CI/CD tools like Bitrise.
This document discusses different architectures for structuring GUI and state management in iOS applications. It covers common patterns like MVC, MVP, MVVM as well as concepts like separation of presentation and domain layers. Specific topics covered include screen state, presentation state, session state, record state, observer synchronization, flow synchronization, and how these relate to architectural patterns like clean architecture. Overall the document provides an overview of options for structuring the different state aspects of iOS applications.
This document discusses different architectures for structuring GUI and state management in mobile apps. It covers common patterns like MVC, MVP, MVVM and their use of screens, presentation, session and record states. It also discusses separating these states using clean architecture principles with layers for presentation, domain and data. Specific technologies and frameworks mentioned include Swift, TDD, NotificationCenter, Realm and various iOS GUI frameworks.
This document discusses GUI architectures and state management patterns for iOS apps. It describes common GUI architectures like MVC, MVP, MVVM as well as state management approaches like Flux and Redux. It also maps these patterns onto the domains of the clean architecture pattern. The document separates state into screen, presentation, session, and record states and provides examples of managing each state type.
The document discusses testing APIs and network requests using stubs and mocks. It provides examples of setting up stubs using OHHTTPStubs to mock API responses for different test cases. It also shows how to use XCTContext to run tests with expectations and wait for expectations to be fulfilled before cleaning up stubs. Key points covered include setting up stubs, activating and deactivating stubs, defining test responses, making requests and asserting on responses using expectations.
The document summarizes techniques for testing JSON parsing and HTTP requests in iOS. It shows how to load test JSON data from bundled files using a TestDataHelper class. It also demonstrates improving HTTP stubbing by creating an HTTPStub struct to activate and deactivate stub responses. The last part announces an upcoming iOS test night on December 14th at Pixiv Inc.
The document discusses a presentation given by Danbo-Tanaka at iOSDC Japan 2018 on August 31st in Track A at 8:20 PM about testing iOS applications. It mentions using test-driven development (TDD) techniques as recommended by Martin Fowler. It also references a iOS Test Night event and a WACATE group. The presentation covers topics like static analysis, resolving issues, architectural patterns, clean system design, and continuous integration/delivery using Bitrise.
The document describes code for displaying player stats from a pubg tracking service. It includes a StatsPresenter class that fetches stats from a data store based on a player's nickname. The presenter updates the stats on a StatsViewController by calling methods to reload the table view and display the player's profile.
This document discusses Chris Lattner, the creator of the Swift programming language. It contains his picture from a WWDC Swift panel and mentions Swift version 7. The end contains emojis pondering and thinking about Swift.
This document summarizes features for building document-based apps in iOS 11, including UIDocumentBrowserViewController, FileProvider, and settings in the app's Info.plist. It provides an overview of how to set up document support and export/import uniform type identifiers to share documents between apps and extensions. Code samples and demo apps are shown for browsing and opening documents from other apps and cloud services using the new iOS 11 APIs.
The document discusses Magic Pod, a tool for testing iOS user interfaces. It mentions that Magic Pod can be used for testing iOS UI with XCUITest, developing AI and GUI interfaces, and using Appium. It also notes that Magic Pod has desktop functionality and can be integrated with CI/CD tools like Bitrise.
This document discusses different architectures for structuring GUI and state management in iOS applications. It covers common patterns like MVC, MVP, MVVM as well as concepts like separation of presentation and domain layers. Specific topics covered include screen state, presentation state, session state, record state, observer synchronization, flow synchronization, and how these relate to architectural patterns like clean architecture. Overall the document provides an overview of options for structuring the different state aspects of iOS applications.
This document discusses different architectures for structuring GUI and state management in mobile apps. It covers common patterns like MVC, MVP, MVVM and their use of screens, presentation, session and record states. It also discusses separating these states using clean architecture principles with layers for presentation, domain and data. Specific technologies and frameworks mentioned include Swift, TDD, NotificationCenter, Realm and various iOS GUI frameworks.
This document discusses GUI architectures and state management patterns for iOS apps. It describes common GUI architectures like MVC, MVP, MVVM as well as state management approaches like Flux and Redux. It also maps these patterns onto the domains of the clean architecture pattern. The document separates state into screen, presentation, session, and record states and provides examples of managing each state type.
The document discusses testing APIs and network requests using stubs and mocks. It provides examples of setting up stubs using OHHTTPStubs to mock API responses for different test cases. It also shows how to use XCTContext to run tests with expectations and wait for expectations to be fulfilled before cleaning up stubs. Key points covered include setting up stubs, activating and deactivating stubs, defining test responses, making requests and asserting on responses using expectations.
The document summarizes techniques for testing JSON parsing and HTTP requests in iOS. It shows how to load test JSON data from bundled files using a TestDataHelper class. It also demonstrates improving HTTP stubbing by creating an HTTPStub struct to activate and deactivate stub responses. The last part announces an upcoming iOS test night on December 14th at Pixiv Inc.
The document discusses a presentation given by Danbo-Tanaka at iOSDC Japan 2018 on August 31st in Track A at 8:20 PM about testing iOS applications. It mentions using test-driven development (TDD) techniques as recommended by Martin Fowler. It also references a iOS Test Night event and a WACATE group. The presentation covers topics like static analysis, resolving issues, architectural patterns, clean system design, and continuous integration/delivery using Bitrise.
The document describes code for displaying player stats from a pubg tracking service. It includes a StatsPresenter class that fetches stats from a data store based on a player's nickname. The presenter updates the stats on a StatsViewController by calling methods to reload the table view and display the player's profile.
This document discusses Chris Lattner, the creator of the Swift programming language. It contains his picture from a WWDC Swift panel and mentions Swift version 7. The end contains emojis pondering and thinking about Swift.
This document summarizes features for building document-based apps in iOS 11, including UIDocumentBrowserViewController, FileProvider, and settings in the app's Info.plist. It provides an overview of how to set up document support and export/import uniform type identifiers to share documents between apps and extensions. Code samples and demo apps are shown for browsing and opening documents from other apps and cloud services using the new iOS 11 APIs.