         Store.shared.dispatch(CreateStickyAction(sticky: sticky))
     }
 }
+
+extension WebViewController: CoachMarksControllerDelegate {
+    func needCoach() -> Bool {
+        return !UserDefaults.standard.bool(forKey: "webview_coach_finish")
+    }
+
+    func coachMarksController(_ coachMarksController: CoachMarksController, didEndShowingBySkipping skipped: Bool) {
+        UserDefaults.standard.set(true, forKey: "webview_coach_finish")
+    }
+}
+
+extension WebViewController: CoachMarksControllerDataSource {
+    func numberOfCoachMarks(for coachMarksController: CoachMarksController) -> Int {
+        return 2
+    }
+    func coachMarksController(_ coachMarksController: CoachMarksController, coachMarkAt index: Int) -> CoachMark {
+        switch index {
+        case 0:
+            var mark = coachMarksController.helper.makeCoachMark(for: view)
+            mark.pointOfInterest = CGPoint(x: view.center.x, y: view.center.y * 3 / 4)
+            mark.cutoutPath = UIBezierPath(rect: CGRect(x: mark.pointOfInterest!.x,
+                                                        y: mark.pointOfInterest!.y,
+                                                    width: 0,
+                                                   height: 0))
+            return mark
+        case 1:
+            if let view = stickiesButton?.value(forKey: "view") as? UIView {
+                return coachMarksController.helper.makeCoachMark(for: view)
+            }
+        default:
+            break
+        }
+        return coachMarksController.helper.makeCoachMark()
+    }
+    func coachMarksController(_ coachMarksController: CoachMarksController, coachMarkViewsAt index: Int, madeFrom coachMark: CoachMark) -> (bodyView: CoachMarkBodyView, arrowView: CoachMarkArrowView?) {
+        let coachViews = coachMarksController.helper.makeDefaultCoachViews(withArrow: true, arrowOrientation: coachMark.arrowOrientation)
+        switch index {
+        case 0:
+            coachViews.bodyView.hintLabel.text = "三回連続でタップすると付箋を作成できます。"
+            coachViews.bodyView.nextLabel.text = "OK"
+        case 1:
+            coachViews.bodyView.hintLabel.text = "このページに貼り付けた付箋の一覧が表示されます。"
+            coachViews.bodyView.nextLabel.text = "OK"
+        default:
+            break
+        }
+        return (bodyView: coachViews.bodyView, arrowView: coachViews.arrowView)
+    }
+}

            make.right.equalTo(view)
            make.height.equalTo(toolbarHeight)
        }
    }
    
    override func didReceiveMemoryWarning() {

        let stickies = UIBarButtonItem(image: UIImage(named:"stickies"), style: .plain, target: self, action: #selector(WebViewController.showStickies(_:)))
        toolbar.setItems([back, space, forward, space, share, space, stickies], animated: true)
        toolbar.tintColor = UIColor.themeColor
        backButton        = back
        forwardButton     = forward
        stickiesButton    = stickies
        back.isEnabled    = false
        forward.isEnabled = false
        view.addSubview(toolbar)
