XianYu
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
# 20230703:Apple Pencil技術研究 - 原先程式測試:已將學期末最終版本載入Mac mini - 目前方向:先將pencil Kit試結合原本架構,(PencilKit本身仍未包含筆刷項目的貼紙、筆式) - 遇到問題:Floating Button結合會有重疊問題、Button kit插入位置需是Body而其他架構仍需調整 ## 相關資料/連結 ![https://hackmd.io/_uploads/rkTh-01th.png](https://hackmd.io/_uploads/rkTh-01th.png) ![https://hackmd.io/_uploads/Hk0T-0Jt2.png](https://hackmd.io/_uploads/Hk0T-0Jt2.png) - [pencil_kit 1.0.4套件](https://pub.dev/packages/pencil_kit) - [Github討論區](https://github.com/flutter/flutter/issues/38135) - [performance issue in drawing app](https://stackoverflow.com/questions/50132188/performance-issue-in-drawing-using-flutter) -->The performance issue in drawing app using flutter is resolved by using drawPath() and instead of using setState for each points to update use NotifyListener() to refresh than it will be more efficient than setState. - [重新創作flutter筆刷](https://www.kodeco.com/25237210-building-a-drawing-app-in-flutter) - [calender drawing use flutter OPensource](https://github.com/AlexanderThiele/stift_flutter_app) # 20230704:繼續PencilKit+WebSocket ### 一、PencilKit 1. 測試PencilKit功能在iPadair上是否筆跡會跳轉⇒功能正常,筆跡可正常顯示 2. 將PencilKit結合FAB(Floating Action Button),導入套件 `💡 記得在Pubget後要重啟VScode才能正常執行` [Visual Studio Code - Target of URI doesn't exist 'package:flutter/material.dart'](https://stackoverflow.com/questions/44909653/visual-studio-code-target-of-uri-doesnt-exist-packageflutter-material-dart) =>記得導入套件後要重啟VSCode才能成功!! - 套件:**flutter_speed_dial 7.0.0,用於動畫** [flutter_speed_dial 7.0.0](https://pub.dev/packages/flutter_speed_dial) ![](https://hackmd.io/_uploads/B1-VWMNq3.png) - Bloc⇒「檔案」間的狀態管理,與「資料」的狀態管理不同 - [Flutter體驗 Day 26-bloc](https://ithelp.ithome.com.tw/articles/10275832) 結果展示 ![](https://hackmd.io/_uploads/BkPsZGN93.png) ![](https://hackmd.io/_uploads/rJ32ZfEqh.png) ### 二、WebSocket - [Work with WebSockets](https://docs.flutter.dev/cookbook/networking/web-sockets) - [Flutter體驗 Day 23-WebSocket](https://ithelp.ithome.com.tw/articles/10274528) 更新資料取得雙向溝通 ![](https://hackmd.io/_uploads/rymXfzVq3.png) # 20230705:Live Streaming 新增另一專案“test_fluter”測試相關套件 ### 壹、即時分享、Video、Camera相關套件 利用python寫server並以flutter連接執行live sharing [Creating a live video streaming application in Flutter](https://medium.com/dscvitpune/creating-a-live-video-streaming-application-in-flutter-43e261e3a5cc) - Cookbook官方文檔—-Vedeo暫停、播放 [Play and pause a video](https://docs.flutter.dev/cookbook/plugins/play-video#1-add-the-video_player-dependency) - 使用套件:Video_Player [video_player | Flutter Package](https://pub.dev/packages/video_player) > 小節 :Vedio可使用,但為現有影片的播放暫停 > - Cookbook官方文檔—-Camera攝影、展示 [Take a picture using the camera](https://docs.flutter.dev/cookbook/plugins/picture-using-camera) > 💡 注意:要在ios/Runner/Info.plist檔案中新增對應camera、microphone權限,否則會開啟失敗 ![](https://hackmd.io/_uploads/rJT8fGEc2.png) > 小節:Camera 可使用(可直接加入在所需範圍中) ## 貳、Screen Sharing(螢幕共享) ### 一、中文keyword:ZEGO - 另尋套件:**zego_express_engine 3.6.1** 需另外下載zego sdk [zego_express_engine | Flutter Package](https://pub.dev/packages/zego_express_engine) [Flutter 移動端螢幕採集(錄屏)方案分享_派大星星星星 - MdEditor](https://www.gushiciku.cn/pl/pwsJ/zh-tw) ZEGO公司網站 [Flutter Dart实时音视频实现流程 - 开发者中心 - ZEGO即构科技](https://doc-zh.zego.im/article/7634) 問題:Package持續引入失敗 已做: ![](https://hackmd.io/_uploads/SyicMME52.png) ![](https://hackmd.io/_uploads/S15iMM452.png) > 小節:需另外下載zego sdk與進行各個room與id設定,且需使用其公司的server,目前在import階段就不行使用,而中文搜尋結果多收斂在本產品 ### 二、英文keyword: ### 1. AgoraIO - Github討論區:AgoraIO-Extensions⇒ Screen sharing functionality [Screen sharing functionality · Issue #109 · AgoraIO-Extensions/Agora-Flutter-SDK](https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/109) - Agoral IO官方Github [Agora.io](https://github.com/AgoraIO) > 小節:兩者都會額外需要AppID與Certificate,並需要在該對應公司創建開發者帳戶並連結API作為使用 > ### 2. LiveKit - 官網文件 [LiveKit Docs](https://docs.livekit.io/) ### 三、插曲 剛剛在試其他Github專案zip檔時載到其他sdk導致Path指向錯誤的問題,刪除該sdk後出現flutter no found ![](https://hackmd.io/_uploads/B16TzGNc3.png) > 💡 Tip:開啟setting檔案並把路徑改為原本的正確路徑即可 ![](https://hackmd.io/_uploads/S1TCMzV5n.png) 修改為原本正確 ![](https://hackmd.io/_uploads/rJEyQz453.png) ### 四、輔助工具 1. VSCode Compilot 需要連結github Compilot⇒要學校信箱+ 驗證 [如何在 VS Code 中使用 GitHub Copilot](https://www.freecodecamp.org/chinese/news/how-to-use-github-copilot-with-visual-studio-code/) [能節省四成開發時間的工具? GitHub Copilot 的介紹與心得分享](https://useme.medium.com/能節省四成開發時間的工具-github-copilot-的介紹與心得分享-2a07e8ce8f6d) 但卡在學生驗證問題(日期) 1. ChatGPT [](https://chat.openai.com/) ### 四、電子白板 - Agora Blog [Blog](https://www.agora.io/en/blog/) - Agora文件 [Interactive Whiteboard Fastboard quickstart | Agora Docs](https://docs.agora.io/en/interactive-whiteboard/get-started/get-started-uikit?platform=android) 相關套件版本參考 - agora_rtm [agora_rtm | Flutter Package](https://pub.dev/packages/agora_rtm/install) - agora_rtc_engine [agora_rtc_engine | Flutter Package](https://pub.dev/packages/agora_rtc_engine/install) > 💡 注意:GPT可以問程式架構,但是版本相關依據還是要以最新更新的版本號為主,否則會顯示fail error,所以要隨時注意pub.dev上的版本號 - Agora互動白板文檔 [开启和配置互动白板服务 - 互动白板 - 文档中心 - 声网Agora](https://docportal.shengwang.cn/cn/whiteboard/enable_whiteboard?platform=iOS) [Interactive Whiteboard Samples and demos | Agora Docs](https://docs.agora.io/en/interactive-whiteboard/reference/downloads?platform=android) 目前有開啟Agora帳戶與新增專案,獲得“APP IP”,且解決import fail問題,但程式仍not work ![](https://hackmd.io/_uploads/HyXmXfNqn.png) ![](https://hackmd.io/_uploads/HkrYmf4q2.png) Agora提供服務項目 ![](https://hackmd.io/_uploads/Skq57MV53.png) ### 五、Screen套件 作為使用公司產品外的替代方案 [screen | Flutter Package](https://pub.dev/packages/screen/example) ![](https://hackmd.io/_uploads/rkcjQf4qn.png) > 小節:版本過舊失敗 # 20230706 # 壹、Running Error 出現error `Error (Xcode): File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a` `Error (Xcode): Linker command failed with exit code 1 (use -v to see invocation)` ![](https://hackmd.io/_uploads/HyuTmfNq3.png) [Xcode 14 and iOS 5.5 simulators](https://stackoverflow.com/questions/74286315/xcode-14-and-ios-5-5-simulators) ### 方向一:模擬器問題 在Xcode中按照以下順序新增一個模擬器 ![](https://hackmd.io/_uploads/BJHkVGV9n.png) 問題未解決:flutter -v印出 ![](https://hackmd.io/_uploads/rJjlEM4c3.png) ### 方向二:Xcode衝突問題 按照本篇方法刪除Pods紀錄,未奏效 [Error Launching Application - Flutter - iOS](https://stackoverflow.com/questions/64440757/error-launching-application-flutter-ios) ![](https://hackmd.io/_uploads/SJqZEM4cn.png) > 💡 小結:直接另外開啟專案執行便可,判斷是在先前測試或下載github專案時改到profile檔導致的Simulator開啟路徑問題,並且實機不便於同時開啟兩個不同的專案交互測試 ## 方向三:實機上開發帳戶額度問題 > 💡 因為Apple限制免費開發者帳戶一次最多只能有三個APP的執行限度,因此超過時會跳出警告,需要手動刪除! [The maximum number of apps for free development profiles has been reached. Xcode 11.5](https://stackoverflow.com/questions/61953293/the-maximum-number-of-apps-for-free-development-profiles-has-been-reached-xcode) ![](https://hackmd.io/_uploads/B1aX4f49h.png) 像是目前已經有三個已使用的App額度,因此刪除一個便可以順利執行 ![](https://hackmd.io/_uploads/rkS4VzVc3.png) # 貳、Sharing相關 ## 一、flutter平台整合提供的相關Channel ![](https://hackmd.io/_uploads/SJUBNGV5h.png) [Writing custom platform-specific code](https://docs.flutter.dev/platform-integration/platform-channels) [A Flutter Channel to Share a File on iOS and Android](https://medium.com/jademind/a-flutter-channel-to-share-a-file-on-ios-and-android-94f03e8aca9d) ## 二、Apple Developer提供 - **ReplayKit** [ReplayKit | Apple Developer Documentation](https://developer.apple.com/documentation/replaykit) [iOS 和 iPadOS 的 ReplayKit 安全性](https://support.apple.com/zh-tw/guide/security/seca5fc039dd/web) - enableX Flutter [Flutter SDK – Video API](https://www.enablex.io/developer/video-api/client-api/flutter-toolkit/) [How to Build a Video Streaming App With Screen Sharing Using Flutter](https://devsday.ru/blog/details/78198) ## 三、Agora Running 使用agora_rtc_engine 範例程式 [agora_rtc_engine | Flutter Package](https://pub.dev/packages/agora_rtc_engine/example) 將程式加上已啟用的Agora IO連接資訊,並且開啟相機與麥克風權限便可建立連線 [The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data](https://stackoverflow.com/questions/39589998/the-apps-info-plist-must-contain-an-nsmicrophoneusagedescription-key-with-a-str) ![](https://hackmd.io/_uploads/rJ5_Vf45n.png) ![](https://hackmd.io/_uploads/ry8YNzVq2.png) ![](https://hackmd.io/_uploads/r13tEzE92.png) ![](https://hackmd.io/_uploads/HJrcEz4cn.png) 並且會產生兩個debugger and profiler供使用 - Observatory debugger and profiler - Flutter DevTool debugger and profiler ![](https://hackmd.io/_uploads/SyWsVfN52.png) > 💡 小結:目前Agora連接API沒問題(Token, App ID),且在開啟機體權限後可以正常生成而不會閃退,但尚未測試多於一台機器的連線情況 ## 四、Flutter Dev - iThome ****關於flutter的dev tool(一)**** [](https://ithelp.ithome.com.tw/articles/10307855) [DevTools](https://docs.flutter.dev/tools/devtools/overview) ## 五、Apple方便快捷鍵 - 快速切至桌面 - fn + f11 # 20230707 # 壹、Collaborative Writing ## 一、Collaborative [Create a Collaborative Rich Text Editing Experience with Flutter Web and Appwrite](https://www.reddit.com/r/FlutterDev/comments/u7zdui/create_a_collaborative_rich_text_editing/) - Apple Collaboration [Collaboration | Apple Developer Documentation](https://developer.apple.com/documentation/collaboration) - Collaboration feature [Adding the collaboration feature in my flutter app](https://www.reddit.com/r/flutterhelp/comments/nznm8z/adding_the_collaboration_feature_in_my_flutter_app/) [netease_roomkit | Flutter Package](https://pub.dev/packages/netease_roomkit) ## 二、Agora Again {%youtube hN4Q04ODOEw%} - 啟用電子白板(帳戶端取得access token) [Interactive Whiteboard Enable Interactive Whiteboard | Agora Docs](https://docs.agora.io/en/interactive-whiteboard/develop/enable-whiteboard?platform=android) flutter SDK [https://github.com/netless-io/Whiteboard-Flutter](https://github.com/netless-io/Whiteboard-Flutter) ## 三、Fluffyboard [https://github.com/Y0ngg4n/fluffy_board](https://github.com/Y0ngg4n/fluffy_board) ## 貳、其他功能 ## 一、Zoom Widget 縮放相關 [zoom_widget | Flutter Package](https://pub.dev/packages/zoom_widget) # 參、開完會老師建議 ## 一、延遲相關:SQL like file ![](https://hackmd.io/_uploads/Hy0iSGE52.png) ## 肆、Error問題 > `Could not build the precompiled application for the device. Error (Xcode): File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/a rc/libarclite_iphoneos.a` > - Git 決定先在實驗室Mac上安裝Git比較方便,用homebrew的方式下載 [](https://ithelp.ithome.com.tw/m/articles/10263551) - 將terminal增加權限 ![](https://hackmd.io/_uploads/HycarGVcn.png) - Xcode版本:14.3 ![](https://hackmd.io/_uploads/S1BCBfEqn.png) 在git clone完的專案terminal輸入指令`open ios/Runner.xcworkspace` - 嘗試解法 [Cocoapods Warning - CocoaPods did not set the base configuration of your project because because your project already has a custom config set](https://stackoverflow.com/questions/26287103/cocoapods-warning-cocoapods-did-not-set-the-base-configuration-of-your-project) ![](https://hackmd.io/_uploads/B1Fm8zNcn.png) 把podlock刪掉後加上本段 ``` post_install do |installer| installer.generated_projects.each do |project| project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' end end end end ``` ![](https://hackmd.io/_uploads/BkUsLGV9n.png) [How to fix Flutter stuck at “running pod install…” when running on vscode building on simulator](https://phongyewtong.medium.com/how-to-fix-flutter-stuck-at-running-pod-install-when-run-578ad867774) 出現其他error `Lexical or Preprocessor Issue (Xcode): 'Flutter/Flutter.h' file not found /Users/widelab/.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-2.9.5/ios/Classes/FWF NavigationDelegateHostApi.h:4:8` `Lexical or Preprocessor Issue (Xcode): 'Flutter/Flutter.h' file not found /Users/widelab/.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-2.9.5/ios/Classes/FWF WebsiteDataStoreHostApi.h:4:8` [https://github.com/tekartik/sqflite/issues/952](https://github.com/tekartik/sqflite/issues/952) ### 我把Xcode玩壞了嗚嗚嗚🥶(有救回來 ![](https://hackmd.io/_uploads/Sy-NPG4c3.png) > 💡 原始的Project運行前記得照以下流程走一次,才不會有問題 1. `flutter pub cache clean` 2. `flutter clean` 3. `flutter pub get` 4. `flutter run` [Build process failed, no corre app en windows](https://stackoverflow.com/questions/72436245/build-process-failed-no-corre-app-en-windows)

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully