2016年がソフトウェアのパラダイムシフトという感じです。

1999年にOOPパラダイムシフト。
2016年がXamarin.Formsマルチプラットフォーム&ウェブアプリパラダイムシフト。
このパラダイムシフトが私の人生最後のシフト経験と思われます。


デスクトップアプリ(WinForm,WPF,UWP)や組込み(C,C++)だけで、巷で賑やかなウェブアプリを食わず嫌いでもまずいと思い、一念発起で挑戦してみました。
とりあえず、構想段階ですが、ショップナビゲーションなるものを考えていましたので、Googleマップの表示に挑戦です。
これからやるには、ReactJS一択との某アドバイスに従い、react-google-mapsのサンプルベースでコンポーネントのお試しです。

import React, {Component} from 'react';
import ReactDOM from "react-dom";
import { compose, withProps } from "recompose";
import {
  withScriptjs,
  withGoogleMap,
  GoogleMap,
  Marker
} from "react-google-maps";

const MyMapComponent = compose(
  withProps({
    /**
     * Note: create and replace your own key in the Google console.
     * https://console.developers.google.com/apis/dashboard
     * The key "AIzaSyBkNaAGLEVq0YLQMi-PYEMabFeREadYe1Q" can be ONLY used in this sandbox (no forked).
     */
    googleMapURL:
      "https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAP_KEY&v=3.exp&libraries=geometry,drawing,places",
    loadingElement: <div style={{ height: `100%` }} />,
  containerElement: <div style={{ height: `600px` }} />,
    mapElement: <div style={{ height: `100%` }} />
  }),
  withScriptjs,
  withGoogleMap
)(props => (
  <GoogleMap defaultZoom={13} defaultCenter={{ lat: 37.909273, lng: 140.128362 }}>
    {props.isMarkerShown && (
      <Marker position={{ lat: 37.909273, lng: 140.128362 }} />
    )}
  </GoogleMap>
));

export default class MyMap extends Component {
  render() {
    return (
        <MyMapComponent isMarkerShown/>
    )
  }
}

----------2018-02-12-14.12.13

なんと簡単にできるものですねぇ。
後はReduxの作法に従い、Actionを発行していけば、ショップナビゲーションサービスは完成できそうです。
つねづね、Litchのようなウェブアプリを作りたいと考えていましたが、ようやくチャレンジできそうです。
サーバーサイドレンダリングとデータベースおよびNode.jsの組み合わせになりますが、大規模になりそうなのでワクワクしてきます。
道の駅が続々オープンしつつありますので、何かお役に立てそうな気もします。
大規模ウェブアブリネタで、農家の販売ショップや経営サポートアプリもやりたいですね。
こうご期待。


アプリケーションの可能性を考えるときりがありません。
例えば、ストリートビューにしても、今日の豪雪を見れるビューアプリはありません。
夏場のビューのみです。
動画撮影趣味の私めとしては、安直にストリートビューが作れて、グーグルストリートビューにオーバーラップ切り替えができるアプリケーションなんて、かなりの需要があるのでは?などと夢想しております。
映画が自前で作れるVRアプリなんてのも実現できれば夢があります。
ローカルからヒット映画が生まれるかもしれません。
今や、ウェブアプリケーションの可能性は無限大です。
日々、ビジネスモデルを夢想する事が大事なのではないでしょうか。