microsoft / BotFramework-WebChat

A highly-customizable web-based client for Azure Bot Services.
https://www.botframework.com/
MIT License
1.59k stars 1.53k forks source link

React Native: Architecture work #3234

Open compulim opened 4 years ago

compulim commented 4 years ago

Please vote if you like this issue, it help us to plan our road map. 😉

Background

Provide an architectural diagram on existing packages. And a new diagram with intention to move us to React Native and reusing as much existing components as possible.

Today

This diagram represents most of the functional components, but not every of them.

image

Interim

This is for architectural change before implementation.

image

image

Tomorrow

After React Native package is implemented. TBC.

image

Push notification may requires service change or a community adapter.

Thoughts

Prototype

Click here to see the prototype.

Work items

This is unbuffered. Please add 20-40% buffer as needed.

Priority Area Work items Assignee Resources
P0
Engineering excellence
#3316: Split bf-wc-component into bf-wc-dom @compulim 5d
#3317: Investigate: how to do VRT on mobile devices? 3d (may need procurement)
#3318: Test harness 5d
#3319: Write playground app 3d
#3320: CI/CD pipeline 2d
#3321: Investigate: can we not bump to React 16.9? ½d
Design
Meet with customers to understand MVP @compulim ?
#3322: Find out which styleOptions are good for RN 1d
MVP
#3323: Investigate: Adaptive Card web vs. native renderer 2d
#3324: Investigate: how to implement scroll-to-bottom? 2d
#3325: Transcript: implement transcript/activities 5d
#3326: Transcript: support RTL 3d
#3327: Transcript: support accessibility ?
#3328: Transcript: implement text/image attachment 1d
#3329: Transcript: implement Markdown ?
#3330: Transcript: implement Adaptive Card native renderer ?
#3331: Transcript: implement activity status ½d
#3332: Transcript: implement scroll-to-bottom ?
#3333: Transcript: implement typing indicator ½d
#3334: Send box: implement text box 1d
#3335: Send box: implement file upload 2d
#3336: Chat adapter: make DLJS cross platform 3d
#3337: Chat adapter: message middleware 1d
#3338: Implement styleOptions 1d
#2892: Implement window.open middleware ?
P1
Engineering excellence
#3339: Investigate: React Native conflicts with symlink 2d
#3340: Investigate: DLJS incompatibility with React Native (BF SDK team) ?
UI
#3341: App: localization 2d
#3342: Transcript: avatar 1d
#3343: Transcript: scroll-to-bottom indicator 2d
#3344: Send box: implement downscaler for thumbnailing 4d
#3345: Notification 5d
#3346: App: pluggable telemetry 2d
P2
Embed
#3347: iOS: native component wrapper and sample 2d
#3348: Android: native component wrapper and sample 2d
#3349: Sample apps 2d
UI
#3350: Investigate: speech support 2d
P3
Embed
#3351: Android/iOS: Cordova wrapper 2d
#3352: Android/iOS: Xamarin wrapper 5d
cwhitten commented 4 years ago

@compulim do we need a row for actual implementation of the styleoptions api?

compulim commented 4 years ago

@cwhitten Added.