All Projects → YuigaWada → MissCat

YuigaWada / MissCat

Licence: Apache-2.0 license
An Optimized Misskey Client App for iOS.

Programming Languages

swift
15916 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to MissCat

Misskey
🌎 An interplanetary microblogging platform 🚀
Stars: ✭ 2,244 (+5000%)
Mutual labels:  misskey, fediverse
misskey
🌎 An interplanetary microblogging platform 🚀
Stars: ✭ 2,895 (+6479.55%)
Mutual labels:  misskey, fediverse
mulukhiya-toot-proxy
各種ActivityPub対応インスタンスへの投稿に対して、内容の更新等を行うプロキシ。通称「モロヘイヤ」。
Stars: ✭ 24 (-45.45%)
Mutual labels:  misskey, fediverse
cherrypick
🌎 A interplanetary communication platform 🚀
Stars: ✭ 40 (-9.09%)
Mutual labels:  misskey, fediverse
TsinghuaNet
清华大学校园网客户端与联网库,适用于 UWP、iOS、Android,其余平台见 tunet-rust
Stars: ✭ 67 (+52.27%)
Mutual labels:  ios-app
cordova-plugin-example
Example Cordova plugin for iOS and Android to support blog post.
Stars: ✭ 15 (-65.91%)
Mutual labels:  ios-app
SwiftUIDrag
A simple, customizable, and intuitive SwiftUI wrapper-view enabling dragging, floating, and/or collapsing for its content.
Stars: ✭ 42 (-4.55%)
Mutual labels:  ios-app
Quran-Pro-iOS
Description Qur’an Pro - القرآن الكريم offers all muslims the complete Holy Quran with verse by verse recitation, translation and transcription. The application is written in SWIFT 2.0
Stars: ✭ 21 (-52.27%)
Mutual labels:  ios-app
ARKitRecorder
Record image and camera pos, etc. information provided by ARKit and save them into files.
Stars: ✭ 102 (+131.82%)
Mutual labels:  ios-app
QtMobileApp
This repository contains basic template for Qt for mobile app development using QML and C++ as backend to access RESTful API's
Stars: ✭ 16 (-63.64%)
Mutual labels:  ios-app
Misskey.py
The Misskey API library for Python. Misskey is made by syuilo. 🐡( '-' 🐡 )hug punch!!!!
Stars: ✭ 49 (+11.36%)
Mutual labels:  misskey
BilibiliCD
用来下载B站视频封面的 iOS App
Stars: ✭ 13 (-70.45%)
Mutual labels:  ios-app
FootballDataSwiftUI
Display Football Data such as scores, upcoming match, team standing, top scorers with football Data API and SwiftUI
Stars: ✭ 76 (+72.73%)
Mutual labels:  ios-app
masto.js
🐘 Mastodon API client for JavaScript, TypeScript, Node.js, browsers
Stars: ✭ 518 (+1077.27%)
Mutual labels:  fediverse
Pulse
❤️ A heart rate camera pulse detector written in Swift.
Stars: ✭ 53 (+20.45%)
Mutual labels:  ios-app
lenny
( ͡° ͜ʖ ͡°) A more user-respectful fork of Lemmy. Created for https://derpy.email.
Stars: ✭ 61 (+38.64%)
Mutual labels:  fediverse
app-Prefs
a demo for open system settings in app(iOS 10.2)
Stars: ✭ 26 (-40.91%)
Mutual labels:  ios-app
iOSProjects
It's project that contains different applications developed with Swift 5.7 👨‍💻👩🏼‍💻🧑🏿‍💻
Stars: ✭ 122 (+177.27%)
Mutual labels:  ios-app
MiniSuperApp-fastcampus
슈퍼앱 운영을 위한 확장성 높은 앱 아키텍처 구축 by 노수진 https://fastcampus.co.kr/dev_red_rsj
Stars: ✭ 209 (+375%)
Mutual labels:  ios-app
ligh7hau5
A Matrix (https://matrix.org/docs/spec/) to Fediverse / ActivityPub client / bridge. Also, some media proxying.
Stars: ✭ 26 (-40.91%)
Mutual labels:  fediverse

MissCat



公式ページ

MissCatはMisskeyに特化したiOS向けのネイティブアプリです。



Missions & Goals

MissCatのミッションは以下の5つです。

  • Misskeyをより身近なSNSにすること
  • スマホに適した直感的な操作性を提供すること
  • インスタンスのバージョン差分を意識しないMisskey環境を提供すること
  • iOSらしく分かりやすいデザインを提供すること
  • Misskeyを広めること



これらに応じて、順に以下のようなゴールを設定しています。

  • iOSネイティブアプリの提供・通知機能や拡張機能の実装
  • スワイプやタップ、半モーダルによる直感的な操作と快適な画面遷移
  • めいすきー等のサポート
  • 奇抜なデザインを用いない、iOSらしいデザイン設計
  • 新規登録画面までの動線



Technical Aspects

カスタム絵文字

Misskeyにはカスタム絵文字というモノが存在します。

一般に、複数行の文字列表示にはUITextViewを使いますが、純正のUITextViewが対応しているのは静止画(UIImage)の挿入のみで、GIFアニメやAPNGといったアニメーション画像を挿入することはできません。また、非同期で取得した画像を挿入することもできません。

そこで、UITextViewをベースに、任意のUIViewを挿入することができるYanagiTextというライブラリを作りました。

MissCatではこのYanagiTextがカスタム絵文字を支える大きな基盤となっています。

また、APNGの表示はAPNGKit, アニメGIFの表示はGifuを利用しています。



MFM(Misskey Flavored Markdown)

Misskeyでは、独自の構文MFMを用いることで文章の修飾をすることができます。(参照)

MissCatでは、FoundationのNSAttributedStringを利用することで一部のMFMに対応しています。



通知

MissCatはWeb版のMisskeyと同じように、WebPushと呼ばれる技術を利用して通知システムを構築しています。


Web版Misskeyは'sw/register'というエンドポイントを叩き、イベントが発生した際に通知がブラウザにPushされるよう登録します。

MissCatでは、この仕組みを利用して、Misskey側で発火した通知イベントを、そのままサーバーへ送るよう'sw/register'へ登録します。サーバー側は暗号化された通知メッセージを受け取ると、メッセージを復号して、適切なフォーマットに変換し、Firebaseへ投げることで各端末に通知を届けます。

※WebPushはprime256v1と言う楕円曲線暗号を元にメッセージが暗号化されているため、サーバーで通知メッセージを受け取った後、適切なカタチで復号してあげる必要があります。そこで、通知の実装にあたり、サーバー側で通知メッセージを復号するモジュールを作りました。webPushDecipher.js



タブ

上タブは私の作ったPolioPagerというライブラリを使っています。



Others

  • コード汚いです
  • 実装していない機能が山程あります
  • バグも山程あります



MissCatは皆様のご意見をお待ちしております。

TwitterMisskeyにて、ご気軽にリプライ/DMを頂けると幸いです。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].