Hi, there is a couple of ways we can deal with configuration changing:
The simplest one is to config android:configChangeds in manifest. That will keep us away from Activity recreating, we only care about onConfigurationChanged method. Add one more method in Contract interface as to take care of it, do some logic, modify layout, anything you want.
To Fragment, we need to set Fragment.setRetainInstance(true). Its similar to the above way.
If you need more than that, we have no choice but write the complexity code. Since Presenter keep our business logic and data, It need to be saved onSaveInstanceState(). Let's presenter parcellable or keep some pieces field in it. So, when onCreate get called again after configuration changes, instead of creating a new dagger component with a new viewmodel, new presenter, we restore that state into Presenter, do some logic, blah blah.
Cảm ơn bạn. Mình đang thử tích hợp vào cakePHP mà ít tuts quá. Phần lớn lỗi là do không load được thư viện. Mình đang tìm hiểu thêm. Nếu bạn cũng đang thử với cakePHP thì có gì support mình với nhé
Bạn ơi mình vừa dùng Docker để cài môi trường Node v7.9 giống bạn để test app nhé, mình có sửa file package.json cập nhật 2 phiên bản mới nhất của express và socket.io đó là
"express": "4.15.2",
"socket.io": "1.7.3"
Bạn xóa folder node_modules và cập nhật phiên bản giống mình rồi "npm install" lại nhé
Các thông số môi trường
npm info it worked if it ends with ok
npm info using npm@4.2.0
npm info using node@v7.9.0
npm info lifecycle chat@0.0.1~prestart: chat@0.0.1
npm info lifecycle chat@0.0.1~start: chat@0.0.1
chat@0.0.1 start /usr/src/app
node app.js
Mình đã chạy thử ok với bản node v7.9 có thể do 2 bản express và socker.io cũ thôi hehe. Cảm ơn bạn đã phát hiện issue nhé, mình sửa post bản sửa đổi này lên git.
À nếu bạn muốn biết docker là gì thì đọc bài này của mình https://viblo.asia/telosma/posts/PDOkqLAKejx
cái đó nó lai k thuộc vấn đề bài viết mình đề cập, chủ yếu phương pháp này sinh ra 1 key để mã hóa dữ liệu thôi, còn trường hợp bạn muốn lưu từ local và đẩy lên bạn có thể dùng native JNi để lưu dữ liệu , hoặc bảo mật hơn có thể băm key ra trong C bằng nhiều method, sau đó có thể gọi token đó ra để mã hóa bằng key của từ keystore, việc làm như vậy sẽ tránh bị decode và xem đc token của bạn
đấy là chiều lấy đc data ở server, nhưng trước khi lấy được data mình cần phải xác thực cho server (như token đó bạn ) . Lúc này cái chuỗi mã hóa ở client mình phải dùng 1 key mà key này trùng với key trên server (để server kiểm tra có phải user của mình không .) -> Không thể dùng keystore để gen ra được rồi . Bạn có cách nào không ?
Sau khi lấy được key này trên server về thì lúc này bạn cọi key đó là 1 data cần được lưu trữ, sau đó dùng keystore để sinh ra 1 key, tiếp theo dùng key này để mã hóa key get từ trên server về, khi nào cần dùng key từ server thì bạn descrypt ra và sử dụng bình thường thôi ạ
Dùng DI khó debug ? Mình ko cho là như vậy
Thứ 2 là nguyên tắc của DI là when we need you, we give it to you
Tức là DI tạo ra instance khi instance đó cần được sử dụng
Việc tạo ra instance ở runtime như vậy thì theo bạn có ảnh hưởng đến perf ko?
Ví dụ mình cần lưu trữ 1 key để mã hóa data , key này ở client và server cùng lưu trữ . Vậy ở client mình có thể lưu trữ ở trong Keystore được không , vì đọc bài này thì mình đang hiểu là Keystore chỉ dùng để mã hóa local thôi.
THẢO LUẬN
Đợt còn mình cũng nhập : CodeWar{kids_can_read_this} nhưng mãi ko được lạ vậy ta
Hi, there is a couple of ways we can deal with configuration changing:
Hình thức thi khá giống với GodTower
Cảm ơn bạn. Mình đang thử tích hợp vào cakePHP mà ít tuts quá. Phần lớn lỗi là do không load được thư viện. Mình đang tìm hiểu thêm. Nếu bạn cũng đang thử với cakePHP thì có gì support mình với nhé
Bạn ơi mình vừa dùng Docker để cài môi trường Node v7.9 giống bạn để test app nhé, mình có sửa file package.json cập nhật 2 phiên bản mới nhất của express và socket.io đó là "express": "4.15.2", "socket.io": "1.7.3" Bạn xóa folder node_modules và cập nhật phiên bản giống mình rồi "npm install" lại nhé
Các thông số môi trường
npm info it worked if it ends with ok npm info using npm@4.2.0 npm info using node@v7.9.0 npm info lifecycle chat@0.0.1~prestart: chat@0.0.1 npm info lifecycle chat@0.0.1~start: chat@0.0.1
Mình đã chạy thử ok với bản node v7.9 có thể do 2 bản express và socker.io cũ thôi hehe. Cảm ơn bạn đã phát hiện issue nhé, mình sửa post bản sửa đổi này lên git. À nếu bạn muốn biết docker là gì thì đọc bài này của mình https://viblo.asia/telosma/posts/PDOkqLAKejx
Node mình sử dụng là v7.9.0 ko chạy được
Node mình đang sử dụng là 6.10.0 nhé bạn Bạn đã fix được chưa?
không chạy được ban ơi. Nó hiện ra lỗi Store.prototype.proto = EventEmitter.prototype; ^
TypeError: Cannot read property 'prototype' of undefined lên mạng xem fix bug thì nó kêu node 7. trở lên chạy ko được vl thật
Hi, I'm working around on MVVMP pattern and finding a way to deal with configuration changes. Do you have any ideas to solve that problem?
AD ơi cho mình xin code được không ạ.!!! Mình Cám ơn. Email: chienptit123@gmail.com
Thanks bạn , đấy chính là vấn đề mình đang confirm trong bài viết này
cái đó nó lai k thuộc vấn đề bài viết mình đề cập, chủ yếu phương pháp này sinh ra 1 key để mã hóa dữ liệu thôi, còn trường hợp bạn muốn lưu từ local và đẩy lên bạn có thể dùng native JNi để lưu dữ liệu , hoặc bảo mật hơn có thể băm key ra trong C bằng nhiều method, sau đó có thể gọi token đó ra để mã hóa bằng key của từ keystore, việc làm như vậy sẽ tránh bị decode và xem đc token của bạn
đấy là chiều lấy đc data ở server, nhưng trước khi lấy được data mình cần phải xác thực cho server (như token đó bạn ) . Lúc này cái chuỗi mã hóa ở client mình phải dùng 1 key mà key này trùng với key trên server (để server kiểm tra có phải user của mình không .) -> Không thể dùng keystore để gen ra được rồi . Bạn có cách nào không ?
Sau khi lấy được key này trên server về thì lúc này bạn cọi key đó là 1 data cần được lưu trữ, sau đó dùng keystore để sinh ra 1 key, tiếp theo dùng key này để mã hóa key get từ trên server về, khi nào cần dùng key từ server thì bạn descrypt ra và sử dụng bình thường thôi ạ
Có 'Le Duy' kìa :v :v
~/.bash_profilebashのprofile参照が、zshに変えたことでzshの上記のprofileのどれかに参照がかわったようですね。 その他の環境変数も移行しておいたほうがいいかもしれません。
Bài viết thật hữu ích. Cảm ơn bạn đã chia sẻ. :v :v
Dùng DI khó debug ? Mình ko cho là như vậy Thứ 2 là nguyên tắc của DI là when we need you, we give it to you Tức là DI tạo ra instance khi instance đó cần được sử dụng Việc tạo ra instance ở runtime như vậy thì theo bạn có ảnh hưởng đến perf ko?
Lại 1 công cụ vô cùng hữu ích cho mọi người. Cảm ơn tác giả
Ví dụ mình cần lưu trữ 1 key để mã hóa data , key này ở client và server cùng lưu trữ . Vậy ở client mình có thể lưu trữ ở trong Keystore được không , vì đọc bài này thì mình đang hiểu là Keystore chỉ dùng để mã hóa local thôi.