黄金民的个人文档

黄金民的个人文档


CoreUI调整讨论

<h2>1.现有架构</h2> <pre><code class="language-plantuml">@startuml rectangle LabApplication{ node 3DPlayer node Editor node VRPlayer node PadPlayer } rectangle LabPlayerView{ component PlayerCoreUI } rectangle LabPlayerModel { component PlayerCore } PlayerCoreUI ---&gt; PlayerCore 3DPlayer ---&gt; PlayerCoreUI Editor --&gt; PlayerCoreUI VRPlayer --&gt; PlayerCoreUI PadPlayer --&gt; PlayerCoreUI @enduml</code></pre> <h3>存在的问题</h3> <ol> <li>UI的复用问题,重复开发</li> <li>应用端缺乏一个成熟的框架来约束</li> </ol> <h2>2.新的架构</h2> <h3>设计决策</h3> <ol> <li>跟UI相关的逻辑适用MVVM架构,不局限于播放组件,也适用于应用端</li> <li>理想情况下,播放组件的UI仅仅保留跟元器件相关联的UI, 其它UI应该由各个应用端自己维护</li> <li>对现有的CoreUI做拆分业务逻辑剥离出来,可共用的业务逻辑放在CoreViewModel中</li> <li>不同平台的播放组件的UI组件,由各自的View层实现。</li> <li>CoreUI可能会依然存在,但只有公共的UI控件</li> <li>以上设计需要有一个支持MVVM的基础框架,目前有找到一个 参考资料 <a href="https://cloud.tencent.com/developer/article/1390650">https://cloud.tencent.com/developer/article/1390650</a> 国外的git地址访问比较慢,可以用这个git地址下载仓库 <a href="https://gitclone.com/github.com/vovgou/loxodon-framework.git">https://gitclone.com/github.com/vovgou/loxodon-framework.git</a></li> </ol> <pre><code class="language-plantuml">@startuml rectangle LabApplication{ node 3DPlayer node Editor node VRPlayer node PadPlayer } rectangle LabPlayerView{ component PlayerView3D component PlayerViewVR component PlayerViewEditor component PlayerViewPad } rectangle LabPlayerViewModel { component PlayerCoreViewModel } rectangle LabPlayerModel { component PlayerCore } PlayerCoreViewModel ---&gt; PlayerCore PlayerView3D --&gt; PlayerCoreViewModel PlayerViewEditor --&gt; PlayerCoreViewModel PlayerViewVR --&gt; PlayerCoreViewModel PlayerViewPad --&gt; PlayerCoreViewModel 3DPlayer--&gt;PlayerView3D VRPlayer--&gt;PlayerViewVR Editor--&gt;PlayerViewEditor PadPlayer--&gt;PlayerViewPad @enduml</code></pre> <h2>3.仓库说明【临时】</h2> <table> <thead> <tr> <th>仓库</th> <th>仓库说明</th> <th>仓库地址</th> </tr> </thead> <tbody> <tr> <td>vlabplayerview3d</td> <td>播放组件-3D相关的View和代码仓库</td> <td><a href="http://git.sdp.nd/component-dll/vlabplayerview3d.git">http://git.sdp.nd/component-dll/vlabplayerview3d.git</a></td> </tr> <tr> <td>vlabplayerviewpad</td> <td>播放组件-PAD相关的View和代码仓库</td> <td><a href="http://git.sdp.nd/component-dll/vlabplayerviewpad.git">http://git.sdp.nd/component-dll/vlabplayerviewpad.git</a></td> </tr> <tr> <td>vlabplayerviewvr</td> <td>播放组件-PAD相关的View和代码仓库</td> <td><a href="http://git.sdp.nd/component-dll/vlabplayerviewvr.git">http://git.sdp.nd/component-dll/vlabplayerviewvr.git</a></td> </tr> <tr> <td>VLab_UIFrame</td> <td>从现有编辑器重构仓库中剥离出的MVVM的框架</td> <td><a href="http://git.sdp.nd/NDVlabFrameGroup/VLab_UIFrame.git">http://git.sdp.nd/NDVlabFrameGroup/VLab_UIFrame.git</a></td> </tr> <tr> <td>vlab-CorePlayer</td> <td>运行与验证现有播放组件的最小仓库</td> <td><a href="http://git.sdp.nd/vlab-projects/vlab-CorePlayer.git">http://git.sdp.nd/vlab-projects/vlab-CorePlayer.git</a></td> </tr> </tbody> </table>

页面列表

ITEM_HTML