dorbel-tech / dorbel-app

Main dorbel node.js app
https://app.dorbel.com
0 stars 1 forks source link

Research native wrapper solution #1630

Open virtser opened 6 years ago

virtser commented 6 years ago

Lets research native wrapper solutions for our web application, in case we want to release it as real mobile app.

The mobile native push messages interface is important to make use of to notify users of actions in the system (like chat messages)/

Lets research the following options by creating small POC:

  1. React native #1654
  2. Phonegap/Cordova like solution #1655
  3. Web push app - https://pushed.co
  4. Minimal wrapper - https://gonative.io
virtser commented 6 years ago

https://gonative.io - Convert your web application into native Android and iOS

Pros

Cons

{
  "general": {
    "userAgentAdd": "gonative",
    "useWKWebView": true,
    "enableWindowOpen": true,
    "useCrosswalkWebView": false,
    "forceScreenOrientation": null,
    "initialUrl": "https://app.dorbel.com/search",
    "appName": "dorbel"
  },
  "navigation": {
    "androidPullToRefresh": false,
    "iosPullToRefresh": true,
    "androidShowRefreshButton": false,
    "iosShowRefreshButton": false,
    "deepLinkDomains": [],
    "tabNavigation": {
      "tabSelectionConfig": [
        {
          "id": "1",
          "regex": ""
        }
      ],
      "tabMenus": [
        {
          "id": "1",
          "items": [
            {}
          ]
        }
      ],
      "active": false
    },
    "sidebarNavigation": {
      "menus": [
        {
          "name": "default",
          "items": null,
          "active": false
        },
        {
          "name": "loggedIn",
          "items": null,
          "active": false
        }
      ],
      "menuSelectionConfig": {
        "testURL": null,
        "redirectLocations": [
          {
            "regex": null,
            "menuName": "default",
            "loggedIn": false
          },
          {
            "regex": ".*",
            "menuName": "default",
            "loggedIn": true
          }
        ]
      }
    },
    "navigationLevels": {
      "levels": [
        {}
      ],
      "active": false
    },
    "navigationTitles": {
      "titles": [
        {}
      ],
      "active": false
    },
    "regexInternalExternal": {
      "rules": [
        {
          "regex": "^(?!https?://).*",
          "internal": false
        },
        {
          "regex": "https?://([-\\w]+\\.)*facebook\\.com/login.php.*",
          "internal": true
        },
        {
          "regex": "https?://([-\\w]+\\.)*facebook\\.com/dialog.*",
          "internal": true
        },
        {
          "regex": "https?://([-\\w]+\\.)*facebook\\.com/v1\\.0/.*",
          "internal": true
        },
        {
          "regex": "https?://([-\\w]+\\.)*facebook\\.com/oauth.*",
          "internal": true
        },
        {
          "regex": "https?://([-\\w]+\\.)*facebook\\.com/v2\\.0/.*",
          "internal": true
        },
        {
          "regex": "https?://([-\\w]+\\.)*facebook\\.com/checkpoint.*",
          "internal": true
        },
        {
          "regex": "https?://([-\\w]+\\.)*facebook\\.com.*",
          "internal": true
        },
        {
          "regex": "https?://([-\\w]+\\.)*plus\\.google\\.com/share.*",
          "internal": false
        },
        {
          "regex": "https?://([-\\w]+\\.)*twitter\\.com/.*",
          "internal": false
        },
        {
          "regex": "https?://([-\\w]+\\.)*instagram\\.com/.*",
          "internal": false
        },
        {
          "regex": "https?://maps\\.google\\.com.*",
          "internal": false
        },
        {
          "regex": "https?://([-\\w]+\\.)*linkedin\\.com/.*",
          "internal": false
        },
        {
          "regex": "https?://([-\\w]+\\.)*google\\.com/maps/search/.*",
          "internal": false
        },
        {
          "regex": ".*",
          "internal": true
        }
      ]
    },
    "toolbarNavigation": null
  },
  "styling": {
    "icon": "https://gonativeio.s3.amazonaws.com/uploads/7c677jw0a0ax4_1506599218696.png",
    "iosHeaderImage": "images/logo1.png",
    "showActionBar": false,
    "showNavigationBar": false,
    "iosSidebarFont": "Default",
    "androidHideTitleInActionBar": false,
    "navigationTitleImage": false,
    "iosTheme": "light",
    "androidTheme": "light",
    "menuAnimationDuration": 0.15,
    "transitionInteractiveDelayMax": 0.2,
    "hideWebviewAlpha": 0.5,
    "disableAnimations": false,
    "androidShowSplash": true,
    "androidSidebarBackgroundColor": "#FFFFFF",
    "androidSidebarForegroundColor": "#777777",
    "androidActionBarBackgroundColor": "#bdbdbd",
    "androidActionBarForegroundColor": "#000000",
    "androidPullToRefreshColor": "#777777",
    "androidAccentColor": "#31124b",
    "androidSidebarSeparatorColor": "#585858",
    "androidTabBarBackgroundColor": "#bdbdbd",
    "androidTabBarTextColor": "#000000",
    "androidTabBarIndicatorColor": "#000000",
    "iosTitleColor": "#333333",
    "iosTintColor": "#31124b",
    "iosSidebarTextColor": "#333333",
    "androidLaunchImages": {
      "mdpi": "https://s3.amazonaws.com/gonativeio/images_generated/1506599383807_n9z38y0qr0ehg_180x180.9.png",
      "hdpi": "https://s3.amazonaws.com/gonativeio/images_generated/1506599383808_zczwd1vuwd662_270x270.9.png",
      "xhdpi": "https://s3.amazonaws.com/gonativeio/images_generated/1506599383808_kregqufe1h9ju_360x360.9.png",
      "xxhdpi": "https://s3.amazonaws.com/gonativeio/images_generated/1506599383808_6a8574n9y64va_540x540.9.png",
      "xxxhdpi": "https://s3.amazonaws.com/gonativeio/images_generated/1506599383809_43dg75jg23g94_720x720.9.png"
    },
    "iosLaunchImages": {
      "ios_launch_640x960": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_rmbefqqwf272p_640x960.png",
      "ios_launch_640x1136": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_t16288xf2t52a_640x1136.png",
      "ios_launch_768x1024": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_x17b7xpqc9vnj_768x1024.png",
      "ios_launch_1024x768": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_ke23ytndtpzma_1024x768.png",
      "ios_launch_1536x2048": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_h8826ve2yw9ty_1536x2048.png",
      "ios_launch_2048x1536": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_hz7hj0hmv97k0_2048x1536.png",
      "ios_launch_750x1334": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_h7jgk53mbd53c_750x1334.png",
      "ios_launch_1242x2208": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_1xxqpczvtdv98_1242x2208.png",
      "ios_launch_2208x1242": "https://s3.amazonaws.com/gonativeio/images_generated/1506599347899_gmamhth0cabh6_2208x1242.png"
    },
    "androidStatusBarBackgroundColor": "#31124b"
  },
  "forms": {
    "search": {},
    "loginConfig": {
      "formSelector": null,
      "loginIsFirstPage": false
    },
    "signupConfig": {
      "active": false,
      "formSelector": null
    }
  },
  "permissions": {
    "usesGeolocation": true,
    "androidDownloadToPublicStorage": false,
    "enableWebRTC": false
  },
  "performance": {
    "webviewPools": [
      {
        "urls": [
          {
            "disown": "reload"
          }
        ]
      }
    ]
  },
  "publishing": {},
  "services": {
    "push": {
      "active": false
    },
    "analytics": {
      "active": false
    },
    "parse": {
      "active": false,
      "pushEnabled": false
    },
    "facebook": {
      "active": false
    },
    "oneSignal": {
      "active": false,
      "notificationExtension": false
    },
    "registration": {
      "active": false,
      "endpoints": [
        {
          "url": null,
          "urlRegex": null,
          "dataType": [
            "parse",
            "oneSignal"
          ]
        }
      ]
    }
  }
}
virtser commented 6 years ago

https://phonegap.com

virtser commented 6 years ago

https://cordova.apache.org/

virtser commented 6 years ago

Research outcome: https://docs.google.com/document/d/14yY9TiRjq0QTas37grbogqOYwEUYI-V6lXJL1e64wCI/edit#heading=h.fiv2usl32uqk