Tapglue iOS SDK

Overview

Tapglue iOS SDK

This will help you get started with Tapglue on iOS step by step guide.

A more detailed documentation can be found on our documentation website.

If you're interested in the iOS SDK Reference Documentation visit our docs on CocoaPods.

Get started

To start using the Tapglue API you need an APP_TOKEN. Visit our Dashboard and login with your credentials or create a new account.

Sample App

Our Sample app covers most of the concepts in our SDK and is a great showcase if you want to check implementation details.

Installing the SDK

This page will help you get started with Tapglue on iOS step by step guide.

Installing with CocoaPods

To install Tapglue with CocoaPods:

  1. Install CocoaPods with gem install cocoapods
  2. Run pod setup to create a local CocoaPods spec mirror, if this is the first time using CocoaPods.
  3. Create a Podfile in your Xcode project and add:
pod 'Tapglue'
  1. Run pod install in your project directory and Tapglue will be downloaded and installed.
  2. Restart your Xcode project

Installing with Carthage

To install Tapglue with Carthage:

  1. Install Carthage with brew update followed by brew install Carthage
  2. Create a Cartfile in the root of your project
  3. Add the following line to your Cartfile: github "Tapglue/ios_sdk" ~> 2.0.1
  4. Run Carthage update --platform iOS
  5. Copy binaries into your project, for RxSwift you only need the RxSwift framework file (not RxTest and RxBlocking)

Manual Installation

If you don't want to use CocoaPods you download the latest version of Tapglue from Github and copy it into your project.

  1. Clone the SDK with git clone https://github.com/tapglue/ios_sdk.git
  2. Copy the SDK into your Xcode project's folder
  3. Import all dependencies

Initialise the library

To start using Tapglue, you must initialise our SDK with your app token first. You can find your app token in the Tapglue dashboard.

To instantiate Tapglue, simply call the constructor and pass in a Configuration instance with your settings. We recommend having the configuration set at a central place and reuse it, for example in the app delegate.

SDK Configuration

If you want to initialise SDK with a custom configuration you can specify following attributes:

  • baseUrl
  • appToken
  • log

The following example showcases usage of the configuration and instantiation of Tapglue.

import Tapglue

let configuration = Configuration()
configuration.baseUrl = "https://api.tapglue.com"
configuration.appToken = "your app token"
// setting this to true makes the sdk print http requests and responses
configuration.log = true

let tapglue = Tapglue(configuration: configuration)
let rxTapglue = RxTapglue(configuration: configuration)

We offer two implementations of Tapglue, a default one with callbacks and one that returns RxSwift Observables.

Notifications

If you plan to use our Notification Service Signals, add the following to the configuration in your app delegate.

sims = TapglueSims(appToken: appToken, url: url, environment: .Sandbox)
registerForPushNotifications(application)
Tapglue.setSessionTokenNotifier(sims)

Last you just need to provide us your push certificate and configure the parameters.

Parameter Description Example
url URL where the token should register. https://api.tapglue.com
environment .Sandbox or .Production depending on the environment of your certificate. .Sandbox

Compatibility

The framework is compatible with iOS 8.0 and up

RxSwift or Callbacks

The SDK offers two interfaces with the exact same functionality. One of them uses callbacks to return results, the other uses RxSwift Observables. If you want to learn more about RxSwift you can read more about it here

If you're familiar to RxSwift and FRP the interactions with the Rx interface are obvious. For the callbacks we always have a similar way of expressing it, for API calls that return entities (users, posts, etc) the methods expect a block with the signature:

(entity: Entity?, error: ErrorType?) -> ()

When the API request doesn't return an entity the signature will look like:

(success: Bool, error: ErrorType?) -> ()

Pagination

Our SDK provides paginated endpoints. This means you potentially have to paginate through several pages to get all the information from an endpoint. This applies to endpoints that return data in a list form. The previous page represents content older than the current page.

Callbacks

tapglue.retrieveFollowers() { (page:Page<User>?, error:Error?) in
  
}

given you have a page and you want the previous:

page.previous() { (page:Page<User>?, error: Error?) in
    secondPage = page
}

RxSwift

tapglue.retrieveFollowers().subscribe(onNext: {(page:RxPage<User>) in
 
})

given you have a page and you want the previous:

page.previous().subscribe(onNext: {(page:RxPage<User>) in
 
})

Create users

After installing Tapglue into your iOS app, creating users is usually the first thing you need to do, to build the basis for your news feed.

let user = User()
user.username = "some username"
user.password = "some password"

tapglue.createUser(user) { user, error in

}

//RxSwift
tapglue.createUser(user).subscribe()

Login users

There are two ways to login a user: by username or by email. Here's an example of loging in with a username:

tapglue.loginUser("username", password: "password") { user, error in

}

//RxSwift
tapglue.loginUser("username", password: "password").subscribe()

Note: migrating from v1

Creating a user no longer will log the user in.

Logout users

To logout the current user call logout.

tapglue.logout() { success, error in
  
}

//RxSwift
tapglue.logout().subscribe()

Current User

When you successfully login a user, we store it as the currentUser by default. The current user is a property on the Tapglue and RxTapglue instances. Once logged in it is persisted and can be refreshed by calling refreshCurrentUser()

var currentUser = tapglue.currentUser

//refreshing the current user
tapglue.refreshCurrentUser() {user, error in
  if let user = user {
    currentUser = user
  }
}

//refreshing the current user in RxSwift
tapglue.refreshCurrentUser().subscribeNext {user in
  currentUser = user
}

Update Current User

To update the current user call updateCurrentUser(user: User).

let user = tapglue.currentUser
user.email = "[email protected]"
tapglue.updateCurrentUser(user) {user, error in
}

//RxSwift
tapglue.updateCurrentUser(user).subscribe()

Delete Current User

This will delete the user from Tapglue. The user cannot be retrieved again after this actions.

tapglue.deleteCurrentUser() { success, error in
}

//RxSwift
tapglue.deleteCurrentUser().subscribe()

Search Users

Connecting users and building a social graph is one of the most challenging parts of building a social experience. We provide three simple ways to help you get started.

Search single users

One way to create connections between users within your app is to do a search. This can be achieved with the following:

tapglue.searchUsersForTerm("searchTerm") {users, error in
}

//RxSwift
tapglue.searchUsersForTerm("searchTerm").subscribeNext { users in
}

This will search for the provided term in the username, firstName, lastName and email.

E-Mails search

If you want to search for multiple e-mails and get back a list of users. This is usually the case when you want to sync users from a source like the address-book. To do so use the following:

tapglue.searchEmails(emails) {users, error in
}

//RxSwift
tapglue.searchEmails(emails).subscribeNext {users in
}

SocialIds search

A similar behaviour can be achieved if you want to sync users from another network like Facebook or Twitter.

let ids = ["id1", "id2"]
tapglue.searchSocialIds(ids, onPlatform: "facebook") { users, error in
}

//RxSwift
tapglue.searchSocialIds(ids, onPlatform: "facebook").subscribeNext { users in
}

Connect Users

To connect users you have to create a Connection entity. The connection entity consists of a userId a ConnectionType and a ConnectionState. The user id represents who the connection is to, the ConnectionType can be of type Follow or Friend and the ConnectionState can be either Pending for when a request has to be accepted by the other party, Confirmed if it does not need to be accepted, or Rejected if the other party rejected the request.

When a Connection request is received from another user in a Pending state, you can then respond by setting the ConnectionState to Confirmed

Follow or Friend a user

let connection = Connection(toUserId: "userId", type: .Follow, state: .Confirmed)

tapglue.createConnection(connection) { connection, error in
}

//RxSwift
tapglue.createConnection(connection).subscribeNext { connection in
}

Delete connections

tapglue.deleteConnection(toUserId: "123", type: .Follow) { success, error in 
}

//RxSwift
tapglue.deleteConnection(toUserId: "123", type: .Follow).subscribeNext { _ in
}

You can learn more about deleting connections etc. in the reference documentation below.

Create Posts

Events are very powerful to build Notification centers or activity feeds. However, if you wan't to include user generated content to build a proper news feed we provide a much more powerful entity for you: Posts.

Post Dependencies

To create a post you need to specify two things first: Visibility and attachments. The possible values for visibility are .Private (only visible for the creator), .Connections (only visible for the connections of the creator and the creator), and .Public (visible for everybody).

Attachments

Each post can have multiple attachments. An attachments of a post can currently be of type text or a url. A text can be used to represent the user generated text. A url is useful for different use-case such as a reference to an image or video. Furthermore you can specify a name for each attachments to add more context to the post.

The contents property of the Attachment entity is a dictionary where the key represents a BCP47 encoded language and the value the content (text, url or image)

let attachment = Attamchment(contents: ["en":"some content"], name: "my attachment", type: .Text)

Creating a Post

So putting the last couple of concepts creating a post is pretty straight forward:

let attachment = Attamchment(contents: ["en":"some content"], name: "my attachment", type: .Text)

let post = Post(visibility: .Connections, attachments: [attachment])

tapglue.createPost(post) { post, error in
}

//RxSwift
tapglue.createPost(post).subscribeNext { post in
}

Comments and Reactions

Posts are the core entity of a news feed. To provide a richer and more engaging experiences, Tapglue enables you to comment or react on posts

Create comments

A comment consists of a dictionary of content, where the keys are BCP47 encoded languages and the values the text (similar to the attachments), and a postId. To create a comment first you need to create a comment entity and then create it on tapglue.

let comment = Comment(contents: ["en":"my comment"], postId: "postId")

tapglue.createComment(comment) { comment, error in
}

//RxSwift
tapglue.createComment(comment).subscribeNext { comment in
}

Retrieve comments

To retrieve comments on a post:

tapglue.retrieveComments("postId") { comments, error in
}

//RxSwift
tapglue.retrieveComments("postId").subscribeNext { comments in
}

Update comments

To update or delete a comment you can use:

  • updateComment
  • deleteComment

You can learn more about deleting comments etc. in the reference documentation below.

Reacting on Posts

The following reactions are supported on posts: like, love, wow, haha, angry, sad. An example of how to create a reaction:

tapglue.createReaction(.wow, forPostId: postId).subscribe()

Deleting a Reaction

To delete reactions call deleteReaction.

tapglue.deleteReaction(.wow, forPostId: postId).subscribe()

Like posts

To like a post you simply have to call createLike with a post id:

tapglue.createLike(forPostId: "postId") { like, error in
}

//RxSwift
tapglue.createLike(forPostId: "postId").subscribeNext { like in
}

NOTE: These likes are not the same as in reactions

Retrieve likes

To retrieve likes on a post simply call retrieveLikes with the post id.

Unlike posts

To remove a like call deleteLike with the id of the previously liked post

Display feeds

In general there are three different types of feeds that Tapglue provides:

  • News Feed
  • Posts Feed
  • Activity Feed

The News Feed contains both: Posts and Activities that have been created in the users social graph. The Posts- and Activity Feeds only contain entries of their associated type.

Additionally Tapglue provides lists of Posts and Activities for a single user.

  • User posts
  • User Activties

Eventually, there is also the opportunity to query the feeds to only get certain types of events.

News Feed

When retrieving the news feed you will get to lists: posts and activities to do so run:

tapglue.retrieveNewsFeed() { newsFeed, error in
}

//RxSwift
tapglue.retrieveNewsFeed().subscribeNext { newsFeed in
}

Posts Feed

To retrieve a Posts Feed there is following method:

tapglue.retrievePostFeed() { posts, error in
}

//RxSwift
tapglue.retrievePostFeed().subscribeNext { posts in
}

Activity Feed

Similar to the examples above, you can retrieve an activity feed as shown in the example below:

tapglue.retrieveActivityFeed() { activities, error in
}

//RxSwift
tapglue.retrieveActivtiyFeed().subscribeNext { activities in
}

User posts

You can also retrieve the posts of a single user and display them under a profile screen for example.

tapglue.retrievePostsByUser("userId") { posts, error in
}

//RxSwift
tapglue.retrievePostsByUser("userId").subscribeNext { posts in
}

Friends and Follower Lists

You might want to show friends, follower and following lists to the current user in your app. For this we provide the following methods

  • retrieveFollowers
  • retrieveFollowings

These methods can also be applied to other users with:

  • retrieveFollowersForUserId
  • retrieveFollowingsForUserId

Retrieve Follower

Here is an example to retrieve all follower of the currentUser:

tapglue.retrieveFollowers() { users, error in
}

//RxSwift
tapglue.retrieveFollowers().subscribeNext { users in
}

Debugging and Logging

You can turn on Tapglue logging by initialising the SDK with a custom configuration and setting enabling the logging there.

let configuration = Configuration()
let configuration.log = true

let tapglue = Tapglue(configuration: configuration)

//RxSwift
let tapglue = RxTapglue(configuration: configuration)

Error handling

Error handling is an important area when building apps. To always provide the best user-experience to your users we defined TapglueError.

When using the callbacks most methods will provide you either a value or an error. We recommend to always check the success or value first and handle errors in case they occur. When using the Rx Observables the errors will get sent on error event.

Each error will contain a code and a message. You can use the codes do define the behaviour on certain errors.

License

This SDK is provided under Apache 2.0 license. For the full license, please see the LICENSE file that ships with this SDK.

PR

TODO: Implement Comments & Likes on external objects

Comments
  • currentUser not accessible in Tapglue.swift

    currentUser not accessible in Tapglue.swift

    opened by hellozimi 3
  • Posts in events

    Posts in events

    Given the fact that we provide posts with the event endpoint we should map them into the events returned by the SDK.

    @onurakpolat @xla could you please do a quick review?

    opened by nilsen340 3
  • New user search

    New user search

    During the development of elements we discovered that user search crashes when queries are too long. This issue has been solved on API side in https://github.com/tapglue/multiverse/pull/696 and must now be ported into the SDK.

    opened by nilsen340 3
  • Remove Tapglue.swift

    Remove Tapglue.swift

    Because this file has the same name as the module we are running into name clashes. It might be considered to add this again in the future if theres a strong demand for it.

    opened by nilsen340 2
  • Sims Integration

    Sims Integration

    Why?

    We're implementing marketing automation as part of the tapglue platform. We would like these features to be easily available through the iOS SDK.

    Goals

    Easy to configure easy to use marketing automation through the SDK.

    Research

    Iterations

    Phase 0

    • [x] Research push services available on iOS
    • [x] Implement dummy example
    • [x] Decide integration with existing iOS SDK
    • [x] Design interface for client-side integration
    • [x] Research testing frameworks on swift

    Phase 1

    • [ ] ~~create initial Pod~~
    • [x] Research deep linking
    • [ ] ~~define/implement generic deeplinking scheme~~
    • [ ] ~~Research reception confirmation~~

    Next steps

    It has been decided that SIMS will be a separate library. Therefore this PR will only contain the interface needed for the comunication between the tapglue sdk and SIMS.

    opened by nilsen340 2
  • Ios8 support

    Ios8 support

    Why?

    Its a customer request that we add iOS 8 support

    Considerations

    Given the dependency on Alamofire our iOS min deployment target is 9. To achieve iOS 8 support we need to replace alamofire with native HTTPing

    opened by nilsen340 1
  • [REVIEW] Comments & Likes

    [REVIEW] Comments & Likes

    This adds Comments and Likes to the iOS SDK.

    • [x] Comments Entity
    • [x] Comments Implementation
    • [x] Comments Unit Tests
    • [x] Comments Acceptance Tests
    • [x] Likes Entity
    • [x] Likes Implementation
    • [x] Likes Unit Tests
    • [x] Likes Acceptance Tests
    API 
    opened by newTendermint 1
  • [WIP] Comments and Likes

    [WIP] Comments and Likes

    This adds Comments and Likes to the iOS SDK.

    • [x] Comments Entity
    • [x] Comments Implementation
    • [x] Comments Unit Tests
    • [x] Comments Acceptance Tests
    • [ ] Likes Entity
    • [ ] Likes Implementation
    • [ ] Likes Unit Tests
    • [ ] Likes Acceptance Tests
    API 
    opened by newTendermint 1
  • Fix users parsed after posts

    Fix users parsed after posts

    When posts are parsed they check users from already cached results, therefore in the current implementation we need to parse and cache users before we parse posts.

    opened by nilsen340 1
  • SDK Update 1.1

    SDK Update 1.1

    This PR includes major refinements to the existing SDK as well new features that come with the Tapglue API 0.4.

    1. Review changes

    There have been some changes in the SDK recently. The goal is to review and refine where needed.

    2. Object-based-feeds

    Following new methods have been added to SDK:

    3. User Issues

    Following issue still occur with the users.

    4. Connections Update

    5. New Posts, Comments, Likes, Share API

    We've added a new API for Posts, Comments on Posts and Likes on Posts and Shares of Posts.

    6. Update Feeds

    Due to the introduction of posts, the new feed structure changed a little bit.

    7. Multi-user search

    It is now possible to search for multiple users by a set of email address or a platform key and a set of socialIds.

    8. Other

    • [x] Improve Tests
    • [x] Add tg_object_id (string) to event model
    • [x] Add Public Raw Method
    API Model Testing Security 
    opened by newTendermint 1
  • Create invite endpoint

    Create invite endpoint

    This creates a pending connection to the user who registers with the provided invite key and value. This can either be a social id or custom key/value pair.

    opened by hellozimi 0
  • 'posts' and 'activities' in NewsFeed.swift aren't accessible outside the module

    'posts' and 'activities' in NewsFeed.swift aren't accessible outside the module

    Hi, I think the properties posts and activities in the NewsFeed.swift should have an open keyword so that we could have access to them from outside the module. What do you think? Thanks.

    opened by artemsmikh 0
Releases(v2.3.1)
  • v2.3.1(Jan 10, 2017)

  • v2.2.3(Oct 10, 2016)

  • v2.2.2(Oct 10, 2016)

  • v2.2.0(Oct 10, 2016)

  • v2.1.0(Sep 27, 2016)

  • v2.0.3(Sep 7, 2016)

    _Added_​

    • retrieval of likes by a user

    For more details on how to migrate please refer to the readme.

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v2.0.2(Sep 27, 2016)

    _Fixed_​

    • Fixed callback issue causing callbacks to never be called back
    • Fixed posts not including user in some cases

    For more details on how to migrate please refer to the readme.

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Aug 15, 2016)

    Major Update SDK to 2.0.0

    We have rewritten our SDK in Swift 2.2 and added a RxSwift interface. Updating from v1 will require some effort but its totally worth it!

    This includes the following changes:

    _Changed_​

    • The code is now 100% Swift
    • The SDK no longer relies on a singleton instance
    • Callback interfaces are still there
    • RxSwift interface added for convenient FRP
    • Add support for Carthage

    For more details on how to migrate please refer to the readme.

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.1.8(May 24, 2016)

    Updating SDK to 1.1.8

    This includes the following changes:

    _Added_​

    • Likes can be created and deleted with post ids

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.1.7(May 23, 2016)

    Updating SDK to 1.1.7

    This includes the following changes:

    _Added_​

    • Added session token notifier for SIMS
    • Tests now support cocoapods 1.0.0

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.1.6(May 17, 2016)

    Updating SDK to 1.1.6

    This includes the following changes:

    _Fixed_​

    • Tapglue interface not updated for new comments with localized content.

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.1.5(May 17, 2016)

    Updating SDK to 1.1.5

    This includes the following changes:

    _Fixed_​

    • Persisted current user not updated on update user call

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.1.4(May 13, 2016)

    Updating SDK to 1.1.4

    This includes the following changes:

    _Added_​

    • Localized content in post attachments and comments

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Mar 21, 2016)

    Updating SDK to 1.1.2

    This includes the following changes:

    _Added_​

    • events now include posts for event type tg_like

    ​_Changed_​

    • Fix user not fetched when fetching events

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Mar 13, 2016)

    Updating SDK to 1.1.1

    This includes the following changes:

    _Changed_​

    • Update email search internally (no interface changes)

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Dec 29, 2015)

    Updating SDK to 1.1.0

    This includes the following changes:

    _Added_​

    • UGC API with Posts, Comments & Likes
    • New Feed API with Newsfeed, Posts Feed & Events Feed
    • New Connections API with Friends Confirmation
    • Queries for all Feeds
    • Multi-User Search (by Email & SocialIds)
    • Improved Users & Events Caching
    • Raw Request Method
    • Stability improvements

    ​_Changed_​

    • Updated Endpoints according to Tapglue API 0.4
    • Various small fixes

    ​_Removed_​

    • Manual event creation for Connections

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.0.3.3(Oct 30, 2015)

    Updating SDK to 1.0.3.3

    This includes the following changes:

    • Connection creation (with an automatic event) fixed
    • Default event visibility fixed
    • Analytics module fixed
    • Smaller fixes

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.0.3.2(Oct 2, 2015)

    Updating SDK to 1.0.3.2

    This includes the following changes:

    • Add friendCount, followerCount and follwedCount to user model

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.0.31(Sep 30, 2015)

    Updating SDK to 1.0.3.

    This includes the following changes:

    • Update to API version 0.3
    • Small fixes

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Jul 27, 2015)

    Updating SDK to 1.0.2.

    This includes the following changes:

    • Further Improvements to IDs
    • Small fixed

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Jul 20, 2015)

    Updating SDK to 1.0.1.

    This includes the following changes:

    • Fixed currentUser Events route
    • Changed Strings to Integer (UserID and EventID) from API
    • Fixed small typos

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Jun 18, 2015)

    This is the initial release of the Tapglue SDK for iOS.

    You can find out how to integrate our SDK with your existing iOS application by reading our documentation at: https://developers.tapglue.com/docs/ios

    Features:

    • Network Communication Layer
    • Data model implementation
    • Parsing in native objects
    • A flush for queueing the events
    • Offline behaviour for events
    • Persistent cache for users and feeds when offline
    • Error handling and custom error classes
    Source code(tar.gz)
    Source code(zip)
Owner
socialpath
The social layer for your app
socialpath
Matrix-rust-components-swift - Swift package providing components from the matrix-rust-sdk

Swift package for Matrix Rust components This repository is a Swift Package for

matrix.org 10 Nov 4, 2022
Flixster-iOS - Flixster iOS Project for CodePath iOS Course

Flixster-iOS Flixster iOS Project for CodePath iOS Course Flix Flix is an app th

null 0 Feb 3, 2022
iOS app that detects LaTeX symbols from drawings. Built using PencilKit, SwiftUI, Combine and CoreML for iOS 14 and macOS 11.

DeTeXt Finding the symbol you want to use in LaTeX can be hard since you can't memorize all the possible commands and packages for every symbol you mi

Venkat 73 Dec 8, 2022
✨ Basic lists from iOS 2 to iOS 14

listapp.ios Basic lists on iOS ✨ UITableView iOS 2* Objective-C 2008 UITableView iOS 2* Swift 2008 diff UICollectionView iOS 6 2012 diff Compositional

null 24 Dec 15, 2022
ScriptWidget is an iOS app that we can create widgets for iOS using JSX label style in JavaScript.

ScriptWidget ScriptWidget is an iOS app that we can create widgets for iOS using JSX label style in JavaScript. Source code for ScriptWidget. Download

everettjf 162 Jan 6, 2023
NetFun-ios-app - iOS app using BFF service to display processed data.

NetFun-ios-app iOS app using BFF service to display processed data. The iOS demo developed in SwiftUI and it uses BFF service to show expected UI comp

Minhaz Panara 0 Jan 3, 2022
Super basic iOS app to browse open-source-ios-apps

Super basic iOS app to browse open-source-ios-apps

null 76 Nov 28, 2022
Robert Ciotoiu 0 Jan 24, 2022
An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS

Reminders iOS An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS. Idea The idea is to implement the simpl

Tiago Martinho 306 Nov 9, 2022
IOS Dracker Payment - An iOS and React app to send/receive money and manage debt

An iOS and React app to send/receive money and manage debt. This app allows users to create transactions, add descriptions, tag images, tag notes, and manage them.

Dharmendra solanki 0 Jan 30, 2022
MyNews-iOS - A simple iOS mobile application for reading news articles

MyNews A simple iOS mobile application for reading news articles. This app uses

Ernest Nyumbu 1 Mar 31, 2022
Ios-desde-cero - Code, documents and resources used in the Stream iOS from scratch

iOS desde cero ¿Qué es esto? iOS desde Cero es un Streaming en ???? sobre desarr

Diego Freniche 36 Aug 22, 2022
yikyak-translate-ios - iOS Take Home Project

yikyak-translate-ios - iOS Take Home Project Before you start Make sure you have the latest stable version of Xcode and have a way to connect to a Git

null 0 Jun 11, 2022
Presentation for Podlodka iOS Crew #9 - Modern iOS Coding

Struct oriented programming vs Protocol oriented programming How do we use protocols How to do it without protocols How to transform any protocol to a

Evgenii Sukhanov 6 Dec 27, 2022
A SwiftUI iOS App and Vapor Server to send push notifications fueled by Siri Shortcuts.

Puffery An iOS App written in SwiftUI to send push notifications fueled by Siri Shortcuts. You can follow other's channels and directly receive update

Valentin Knabel 29 Oct 17, 2022
Experimental SwiftUI build of the iOS app switcher

SwiftUI - iOS App Switcher This project is an approximation of the iOS app switcher UI experience, built with SwiftUI. The following interactions are

Marcus Crafter 65 Dec 8, 2022
A Currency Converter & Calculator IOS application to check, convert and calculate to popular currencies to your favorite ones.

A Currency Converter & Calculator IOS application to check, convert and calculate to popular currencies to your favorite ones.

CCC 64 Jan 1, 2023
Corona Virus Tracker & Advices iOS App with SwiftUI

Corona Virus Stats & Advices App with SwiftUI Features Current statistics of global total confirmed, deaths, recovered cases. Statistics of countries

Alfian Losari 358 Dec 27, 2022
iOS version of emitron

emitron (iOS) emitron is the code name for the raywenderlich.com app. This repo contains the code for the iOS version of the app. Contributing To cont

razeware 331 Dec 2, 2022