Metatext A free, open-source iOS Mastodon client.

Overview

Metatext

A free, open-source iOS Mastodon client.

Download on the App Store

Contributing Bug Reports

GitHub is used for bug tracking. Please search existing issues and create a new one if the issue is not yet tracked.

Contributing Translations

You can help translate Metatext on CrowdIn.

Contributing Code

See the contribution guidelines.

Building

To build Metatext:

  • Clone the repository (git clone https://github.com/metabolist/metatext.git)
  • Open Metatext.xcodeproj in Xcode
  • Select the top-level "Metatext" item in Xcode and change the team in each target's "Signing & Capabilities" settings to your own

All dependencies are managed using Swift Package Manager and will automatically be installed by Xcode.

Push Notifications

Push notifications will not work in development builds of Metatext unless you host your own instance of metatext-apns and change the pushSubscriptionEndpointURL constants in IdentityService.swift to its URL.

Architecture

  • Metatext uses the Model–view–viewmodel (MVVM) architectural pattern.
  • View models are clients of a service layer that abstracts network and local database logic.
  • Different levels of the architecture are in different local Swift Packages. import DB and import MastodonAPI should generally only be done within the ServiceLayer package, and import ServiceLayer only within the ViewModels package.

Acknowledgements

Metatext uses the following third-party libraries:

Cryptography Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

License

Copyright (C) 2021 Metabolist

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Comments
  • Custom emojis in the name is misaligned in iOS 15

    Custom emojis in the name is misaligned in iOS 15

    Describe the bug SSIA image

    To Reproduce Steps to reproduce the behavior:

    1. Update iOS to 15
    2. Open a profile with a custom emojis in the name (eg me)
    3. See broken names on the timeline.

    Expected behavior Custom emojis and name letters should be in the same alignment

    Screenshots

    iOS 14

    image

    iOS 15

    image

    • Device: iPhone SE (2nd Gen) [MHGQ3J/A]
    • OS: iOS 15.0
    • App Version: 1.5.0(4)
    opened by eai04191 12
  • Font size options

    Font size options

    I would like different fontsize options for the Metatext app. I like to use my screen realestate as efficient as possible i.e. smallest possible font!

    Describe the solution you'd like A menu (slider) where I can change the default fontsize for Metatext.

    Additional context The official Twitter app has this option (for inspiration).

    opened by jan-vandenberg 10
  • Pictures couldn’t get loaded

    Pictures couldn’t get loaded

    Describe the bug Whenever there’s a picture in a toot, there’s just a blurry preview. When I tap on it, it says “couldn’t load picture”

    To Reproduce Steps to reproduce the behavior: As described above, every toot with a picture

    Expected behavior Well, that I could see the picture. Maybe even in the toot without (trying) opening it.

    Screenshots

    (please complete the following information):

    • Device: iPhone 13 Pro
    • OS: 16.2
    • App Version 1.5.1(2)

    Additional context Add any other context about the problem here.

    opened by Aluhut 7
  • No notification badge on iOS

    No notification badge on iOS

    Describe the bug It seems the icon never gets the badge when I have a notification. I do receive the alert in the notification center etc but I never get the badge.

    To Reproduce Configuration is attached. My iOS is in French.

    B8A59466-E0E4-472E-B7B4-568BE239D24F

    Expected behavior Have a red dot on top of the icon when I have unread notifications.

    (please complete the following information):

    • Device: iPhone 12 Pro
    • OS: 15.6
    • App Version 1.5.1 (2)
    opened by jcarnat 6
  • Make navigation controllers pop via swipe

    Make navigation controllers pop via swipe

    Summary

    This PR adds the ability to swipe to pop view controllers within navigation controllers like many other popular Apps.

    We do this by creating a subclass of UINavigationController called SwipeableNavigationController, which has all of the gesture code. Then in MainNavigationViewController we swap out the navigation controller init.

    Other Information

    Shout out to @eoghain for building the reference implementation that I used!

    Demo

    Screen_Recording_2022-11-12_at_12 00 35_AM

    opened by StephenRadachy 5
  • App-specific light/dark mode toggle

    App-specific light/dark mode toggle

    The app's theme is tied to system-wide light or dark setting. I prefer light theme for my social apps and dark theme for everything else, so I'd love to see an option to toggle between the two in the in-app preferences without affecting the system-wide setting. I tend to see this implemented as a drop-down list with three options: Light, Dark, or Match System.

    enhancement 
    opened by peterrauscher 5
  • Image copy from share sheet not working

    Image copy from share sheet not working

    In the last couple of betas, copying an image from the share sheet no longer appears to work.

    To Reproduce

    1. View a image from a post
    2. Open the share sheet
    3. Select copy
    4. Go somewhere that allows image pasting
    5. Try to paste

    Expected behavior Image is copied and pasted

    • Device: iPhone XS
    • OS: 14.4.2
    • App Version 1.4.0 (3)
    bug 
    opened by mcg 5
  • Slow when loading more data from server

    Slow when loading more data from server

    Describe the bug

    Somehow the app is lagging a lot every time i have the feeling it is contacting the server. At start, when i switch back to the app, when I click any of the interactions that result in a server call.

    It basically feels like the app is doing the calls in the UI thread and blocking the swift rendering engine.

    To Reproduce Steps to reproduce the behavior:

    1. Click on anything that needs a server get
    2. See the ui blocking

    Expected behavior Snappy app

    bug 
    opened by bitboxer 4
  • Fix crash when muting account

    Fix crash when muting account

    Summary

    This is a fix/workaround for the crash that happened sometimes after muting a profile.

    The root cause seems to be the fact that cached posts are deleted from the database upon muting, which results in lastUpdate containing no items anymore, which leads to an index-out-of-bounds error when trying to access it.

    Other Information

    Fixes #48.

    opened by vollkorntomate 3
  • Support for language tags

    Support for language tags

    Is your feature request related to a problem? Please describe. Mastodon has the ability to tag posts by their language. This is applicable for when users filter the posts they see on their timeline based on the post’s language. Currently this feature is not supported by Metatext, and as result all posts are tagged with the user’s default post language with no way to change that for a specific post.

    Describe the solution you'd like The ability to choose a post’s language at the time of composition

    Additional context A screenshot of language picker option on Mastodon web client A1AF90B0-01C4-467C-81F9-88E5C1A9F097

    enhancement 
    opened by avrhmt 3
  • crash immediately after tapping Mute on a user

    crash immediately after tapping Mute on a user

    Describe the bug

    I tapped mute on a user The app crashed

    To Reproduce Steps to reproduce the behavior:

    1. In my personal timeline
    2. A post from a stranger
    3. Appeared boosted into my timeline
    4. I tapped the stranger name
    5. I saw their profile
    6. I tapped mute
    7. The app crashed

    Expected behavior

    Should not crash

    Screenshots If applicable, add screenshots to help explain your problem.

    (please complete the following information):

    • Device: iPhone 12
    • OS: iOS 16.1.1
    • App Version 1.7

    Additional context Add any other context about the problem here.

    I have crash report but can't upload it

    last message in log is

    2600:3c03::f03c:93ff:feaa:7c45.443 ready channel-flow (satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, ipv6, dns)] received notification connection_idle",
      "2022-11-22 22:29:28.0930 -0800 default 0x021d7 0x0 Metatext[399] (CFNetwork): Task <B3143293-46C5-40C0-8FB8-D41477300E32>.<48> finished successfully",
      "2022-11-22 22:29:28.2432 -0800   error 0x0174a 0x0 Metatext[399] (UIKitCore): Warning once only: UITableView was told to layout its visible cells and other contents without being in the view hierarchy (the table view or one of its superviews has not been added to a window). This may cause bugs by forcing views inside the table view to load and perform layout without accurate information (e.g. table view bounds, trait collection, layout margins, safe area insets, etc), and will also cause unnecessary performance overhead due to extra layout passes. Make a symbolic breakpoint at UITableViewAlertForLayoutOutsideViewHierarchy to catch this in the debugger and see what caused this to occur, so you can avoid this action altogether if possible, or defer it until the table view has been added to a window. Table view: <UITableView: 0x10609d400; frame = (0 0; 428 926); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x283c7a700>; backgroundColor = <UIDynamicSystemColor: 0x2827696c0; name = tableBackgroundColor>; layer = <CALayer: 0x283272140>; contentOffset: {0, -91}; conte..."
    ]
    

    backtrace ends

    Thread 0 Crashed::   Dispatch queue: com.apple.main-thread
    0   Metatext                      	       0x1042df3e0
    1   Metatext                      	       0x1042e3110
    2   Metatext                      	       0x104294f94
    3   libswiftUIKit.dylib           	       0x19b178ff4 closure #1 in UICollectionViewDiffableDataSource.init(collectionView:cellProvider:) + 220
    4
    
    opened by alexbbrown 3
  • URLs only count for 23 characters of mastodon post limit - but metatext counts them all

    URLs only count for 23 characters of mastodon post limit - but metatext counts them all

    Describe the bug

    From the mastodon help: URLs in text always count for 23 characters

    When composing a toot in metatext it displays the toot character limit (eg500) and how many more characters you can add to your post before the limit is exceeded

    but when adding a 100 character URL it subtracts 100 characters from the limit, instead of 23

    unless the URL is on the first line

    To Reproduce Steps to reproduce the behavior:

    1. open metatext
    2. Tap compose
    3. Observe limit 500 remaining
    4. Enter this URL
     https://www.researchgate.net/profile/Marc-Smith-12/publication/215643659/figure/fig2/AS:305995675914242@1449966462078/Microsoft-Outlook-Expresss-newsgroup-browsing-interface.png
    
    1. Observe remaining limit is 477
    2. Add one carriage return at the start of the toot
    3. Observe remaining limit is 322

    Expected behavior subtract 23, regardless of the length of the URL

    Screenshots If applicable, add screenshots to help explain your problem.

    (please complete the following information):

    • Device: iPhone 12
    • OS: iOS 16.2
    • App Version : 1.7

    Additional context Add any other context about the problem here.

    bug 
    opened by alexbbrown 0
  • Fix spelling

    Fix spelling

    Summary

    inFrequent -> infrequent https://en.wiktionary.org/wiki/infrequent

    opened by jordanekay 0
  • Add support for default keyboard in composition view

    Add support for default keyboard in composition view

    Summary

    This fixes #76 by implementing the proposed solution to make the keyboard type configurable in the app's preferences.

    Other Information

    opened by blazer82 4
  • Content Warning UX Improvements - Increase transparency

    Content Warning UX Improvements - Increase transparency

    Problem

    I would propose suggestions for the current content warning experience. In the current solution, content warnings are not visible as such for users, as there is a lack of context. For instance, you only see the reason for the content warning (e.g. Personal) but you cannot see that this post is actually a content warning. The UI with the CTA “Show more” can be mistaken for a harmless post as CTAs like these are usually shown to view more detailed information such as reading the whole article after seeing a summary, etc. The purpose of content warnings however is to beware users of content that they might not want to see or might mentally not be able to see and thus protecting their psychological safety. Thus, content warnings should be easily recognizable as such to help users decide whether they are ready or want to see the content.

    Another issue with the current content warnings is the CTA design. Currently, a Primary CTA is used which is very prominent (it takes the entire screen width & solid background color). CTAs like these are typically used for primary actions you want the user to take. This pattern is so common that users are subconsciously pushed towards clicking it as it is the most visible action on the screen. However, in this context, you don't want users to click a content warning subconsciously and rather help them make an informed decision by providing them context and also making the CTA less prominent.

    Third, the UX of seeing content warnings is complex as well currently. The user can set a content warning for a text only, for a photo & text and only for a photo. Especially in the case where both the text & the photo have a content warning, you have to click first either on the photo or text and then on the other component to view the entire thing. However, this behavior adds unnecessary complexity due to multiple necessary button clicks to view all and thus possible UX issues since I don't think it is necessary to view the picture & text independently if both have a content warning.

    Last, the icon in the top right corner of the screen is ambiguous. You can already uncover the content by clicking on the content itself, and the top right action does not add any additional functionally. Plus, it is shown in every single post detail screen even if there is no content warning at all (and does it do not do anything). A button which replicates functionality, which redundancy does not give additional value or does not do anything, is not necessary. I think we can remove it.

    Here you can see some screenshots of the current behavior:

    | Current: CW for text only | Current: CW uncovered | | ----------- | ----------- | | Current: CW for text only |Current: CW uncovered |

    | Current: CW for photo only | Current: CW for text only | | ----------- | ----------- | |Current: CW for photo only |Current: CW for text only |

    | Current: CW for photo & text | Current: CW for photo uncovered | Current: CW for photo & text uncovered | | ----------- | ----------- | ----------- | | Current: CW for photo & text|Current: CW for photo uncovered |Current: CW for photo & text uncovered |

    Solution

    To simplify the behavior and add context to increase the transparency of content warnings and help users recognize them, I would suggest the following solution:

    • use a content warning component which shows
      • that this is a content warning and also the type of the content warning ("Content warning:" + {reason}", e.g. "Content warning: Personal")
      • context with explanatory text to help the users understand what this means and also that this is an action done by the author. Otherwise it may be confused with moderated content (e.g. that the author did not follow rules) which might leave a negative impression
      • CTA to uncover the content. Here I propose a tertiary CTA which is not prominent so that the user takes a step back before clicking it
      • simplify behavior of CW display
        • if there is only a text, add a general content warning component above the text
        • if the CW is only for the picture, blur only the picture and add the explanation within the blurred space.
        • if the CW is for both the picture & text, blur both components together
    • if the user decided to click the "Show content" CTA, show the content.
    • remove the eye icon in the top right corner on all screens

    The suggestion I made here is used similarly by other services like Instagram and Twitter. As the majority of the users is probably familiar with these platforms due to their popularity, this pattern also builds on this familiarity. Furthermore, I think we can remove the case that a media CW & text content warning can be unhidden independently. In the currently implemented version, when setting a text CW and adding a media, the media content warning is required and there is no opt-out possible. Thus, if the text is critical, then the media probably is as well and the user probably does not want to see the media only in this case.

    | New: CW for text only | New: text CW uncovered | | ----------- | ----------- | |New: CW for text only|New: text CW uncovered |

    | New: CW for image & text | New: CW for image only | New: CW uncovered | | ----------- | ----------- | ----------- | |New: CW for image & text|New: CW for image only|New: CW uncovered|

    Alternatives

    If there are more visual design ideation, feel free to suggest them. I thought about the benefits to still give the users the option to hide a CW post if they want again, however after checking other apps, I saw that this is not a common behavior. I think thus if the user wanted to see the content, the likelihood that they want to hide it again is very low as they already saw it. This is an assumption though and can be checked with tracking (if applicable) or by asking users about it.

    Out of context suggestions

    When looking at the visual design, you can see that I also increased the margin on the right and left. Currently, it is at 8 — however for mobile apps a margin of 16 on the sides is more common and also helps the design “breathe” better and feel less cluttered.

    Next steps

    Feel free to research more, ideate and challenge this idea. Furthermore, if this idea is generally approved, we need someone with coding skills which I cannot provide as a UX designer :)

    enhancement 
    opened by eszter007 1
  • Make custom emojis visible to Voice Over

    Make custom emojis visible to Voice Over

    Describe the bug Currently when Voice Over reads a text selection with custom emojis, it will ignore them.

    To Reproduce Steps to reproduce the behavior:

    1. Navigate to a post where a username has custom emoji in it using Voice Over
    2. Notice that the custom emoji is not spoken

    Expected behavior Custom emojis should be announced

    Screenshots

    (please complete the following information):

    • Device: iPhone 14 Pro Max
    • OS: iOS 16.0.2
    • App Version: 1.7.0
    bug accessibility 
    opened by StephenRadachy 4
  • Report completion stalls while animating : looks ugly

    Report completion stalls while animating : looks ugly

    Describe the bug when reporting a post, the report UI stalls for multiple seconds part way through animating the report pop up away.

    To Reproduce Steps to reproduce the behavior:

    1. Go to a post
    2. Report it
    3. As the report is being filed, the UI gets stuck
    4. After a few second animation resumes and the UI returns to normal

    i wonder how to test this without annoying the mods

    Expected behavior

    The animation should not stall regardless of the state of the reporting process

    Screenshots If applicable, add screenshots to help explain your problem.

    IMG_0234

    (please complete the following information):

    • Device: iPhone 12
    • OS: iOS 16.2
    • App Version: 1.7

    Additional context Add any other context about the problem here.

    bug 
    opened by alexbbrown 0
Releases(v1.7.1)
  • v1.7.1(Nov 28, 2022)

  • v1.7.0(Nov 22, 2022)

    • Swipe anywhere to navigate back (@StephenRadachy)
    • Added Basque, Greek, Hebrew, Brazilian Portuguese, and Swedish translations
    • Updated translations for other languages
    • Bug fixes (@6a-62)
    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Nov 15, 2022)

    • Set dark or light mode appearance within the app (@vollkorntomate)
    • Added Catalan, Czech, French, Scottish Gaelic, and Traditional Chinese translations
    • Updated translations for other languages
    • Bug fixes
    Source code(tar.gz)
    Source code(zip)
  • v1.5.3(Nov 11, 2022)

    • Fixed timelines flashing
    • Added link to edit profile
    • Link previews now hidden when content warning is present (@dvorakroth)
    • Updated minimum iOS version to 15
    Source code(tar.gz)
    Source code(zip)
  • v1.5.2(Nov 9, 2022)

    • Fixed issues viewing announcements
    • Fixed search issues (@prplecake, @kimar)
    • Fixed space when replying to self (@prplecake)
    • Added account settings
    • Updated dependencies
    Source code(tar.gz)
    Source code(zip)
  • v1.5.1(May 6, 2022)

  • v1.5.0(May 10, 2021)

    • View your instance's announcements and react with emoji
    • Malow app icon
    • Search resolves URLs
    • Fixes for instances using Mastodon v3.4.0rc1
    • Fixes for pasting images copied from the share menu
    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Apr 7, 2021)

  • v1.3.0(Apr 5, 2021)

  • v1.2.0(Apr 1, 2021)

  • v1.1.1(Mar 29, 2021)

  • v1.1.0(Mar 28, 2021)

  • v1.0.2(Mar 24, 2021)

    • Added German localization
    • Improved accessibility actions
    • Long press to reply / boost / favorite from other accounts
    • Fixed keyboard not appearing when signing in on iPad
    • Fixed emoji picker not appearing when replying to a toot with a content warning
    • Navigate back after deleting a toot that's the parent of a thread
    • Added link to review on the App Store in "About This App"

    Thanks to @grimneko for German translations

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Mar 19, 2021)

    • Added Japanese localization
    • Fixed list editing menu item visibility
    • Boost button is bolded when statuses are boosted for increased visibility
    • Whitespace from URLs pasted into the instance URL field is stripped

    Thanks to @noellabo for Japanese translations

    Source code(tar.gz)
    Source code(zip)
Open source SDK to quickly integrate subscriptions, stop worring about code maintenance, and getting advanced real-time data. Javascript / iOS glue framework

Open source SDK to quickly integrate subscriptions, stop worring about code maintenance, and getting advanced real-time data. Javascript / iOS glue framework

glassfy 5 Nov 7, 2022
An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps

PeerKit An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps Usage // Automatically detect and attach to

JP Simard 861 Dec 23, 2022
SwiftCANLib is a library used to process Controller Area Network (CAN) frames utilizing the Linux kernel open source library SOCKETCAN.

SwiftCANLib SwiftCANLib is a library used to process Controller Area Network (CAN) frames utilizing the Linux kernel open source library SOCKETCAN. Th

Tim Wise 4 Oct 25, 2021
SkyWite is an open-source and highly versatile multi-purpose frameworks.

SkyWite is an open-source and highly versatile multi-purpose frameworks. Clean code and sleek features make SkyWite an ideal choice. Powerful high-level networking abstractions built into Cocoa. It has a modular architecture with well-designed, feature-rich APIs that are a joy to use.

SkyWite 24 Apr 22, 2022
Login-screen-using-Swift - Firebase Apple Open Source Development

Firebase Apple Open Source Development This repository contains all Apple platfo

Kushal Shingote 1 Feb 3, 2022
Twitter-Client - A twitter client that allow users to view tweets on their iphone

Project 3 - Twitter Client Name of your app is a basic twitter app to read your

null 0 Feb 7, 2022
FreeRDP is a free remote desktop protocol library and clients

FreeRDP: A Remote Desktop Protocol Implementation FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache lic

null 7.8k Jan 8, 2023
To practice URLSession to fetch json data from open weather API

⛅️ weatherApp-iOS-practice ?? 기능 상세 도시 이름을 입력하면 현재 날씨 정보를 가져와 화면에 표시되게 만들어야 합니다

Jacob Ko 0 Dec 18, 2021
Socket.io iOS and OSX Client compatible with v1.0 and later

SocketIO-Kit ⚠️ This project is no longer maintained. Please use the official framework Socket.IO-Client-Swift. SocketIO-Kit is a Socket.io iOS client

Ricardo Pereira 140 Mar 9, 2022
📱  A strongly-typed, caching GraphQL client for iOS, written in Swift.

Apollo iOS is a strongly-typed, caching GraphQL client, written in Swift. It allows you to execute queries and mutations against a GraphQL server, and

Apollo GraphQL 3.6k Jan 7, 2023
Frp Client Framework for iOS

Frp Client Framework for iOS README | 中文文档 base on https://github.com/fatedier/frp v0.37.1(the lastest at 2021.10) ios framework,it can run on your ip

zhouhao 5 Dec 13, 2022
Minecraft server RCON client for iOS/macOS

iRCON Minecraft server RCON client for iOS/macOS. Features Full remote console window Player list with ability to easily op, kick, ban, etc. Quickly s

JackMacWindows 7 Dec 26, 2022
SSH and SFTP client for iOS

Parrot.Flo SSH and SFTP client for iOS https://parrot-flo.site BUG ? Please Submit new issue Contact me Hey ? do you want ask about all my tools ? you

0x 4 Feb 16, 2022
The HTTP library used by the Spotify iOS client

Authentication and back-off logic is a pain, let's do it once and forget about it! This is a library that allows you to centralise this logic and forg

Spotify 625 Nov 20, 2022
This generic SOAP client allows you to access web services using a your iOS app, Mac OS X app and AppleTV app.

This generic SOAP client allows you to access web services using a your iOS app, Mac OS X app and Apple TV app. With this Framework you can create iPh

Prioregroup.com 479 Nov 22, 2022
An iOS library to route API paths to objects on client side with request, mapping, routing and auth layers

WANetworkRouting Developed and Maintained by ipodishima Founder & CTO at Wasappli Inc. Sponsored by Wisembly A routing library to fetch objects from a

null 10 Nov 20, 2022
iOS Project Manager Client

08-iOS-Project-Manager-Client 프로젝트 매니저 STEP 1 프로젝트 할일 리스트 기능구현 UI구현방식 : 코드 아키텍쳐 : ProjectManagerViewController : NavigationViewController위에 StackView(

Kioding87 1 Nov 19, 2021
The official iOS client library for api.video

api.video iOS client api.video is the video infrastructure for product builders.

api.video 8 Dec 2, 2022
Conforming WebSocket (RFC 6455) client library for iOS and Mac OSX

SwiftWebSocket Conforming WebSocket (RFC 6455) client library for iOS and Mac OS

null 0 Dec 24, 2021