😫

【Flutter/Dart】なろう小説API使ってみた。

2022/09/04に公開

はじめに

Flutter3.3がリリースされましたね!
その記事を書こうかと思ったのですが、Flutter大学さんがまとめてくれているのでこっちをみましょう。

https://blog.flutteruniv.com/flutter-3-3-dart-2-18/

あとは、RiverpodのRemiさんのTwitterとか見ておきましょう。

https://twitter.com/remi_rousselet?s=20&t=6dGM36c2t-0YwnxOMpZ_7g

そんなことはさておいて、久々にFlutterの記事を書いてみました。

なろう小説APIについて

さて、なんかいいネタないかなぁーと探していたところ、
面白そうなAPIがあったので使ってみました。

ランキング:
https://dev.syosetu.com/man/rankapi/#link4

詳細:
https://dev.syosetu.com/man/api/#link6

作ってみた

https://github.com/tomohiroshouhi/flutter_narou

今回は一時間くらいで作ったので、デザインとかそうゆうのは全く0です。
あと、なぜかこのAPIランキングにタイトル情報がないので一件一件詳細APIを叩いているので、表示までに時間がかかるのは欠点です。
※ なんか、他にAPIなかったのかなぁ。とか思ったり。

要点

今回は以下の過去に作った記事が非常に役に立った。

https://zenn.dev/tomofyro/articles/b36f249602d3cb

https://zenn.dev/tomofyro/articles/81ba58548e6fb3

https://zenn.dev/tomofyro/articles/a78fadeaa07efa

https://zenn.dev/tomofyro/articles/276a0e70b9e7b9

久しぶりにCubitとか使ったので少し迷う部分もあったがなんとかでけた。
特に今回は、MultiBlocProviderを使ったのだが、以下の説明に書いてあるように初期実行の実装を確認できたのがよかった。
また、Blocがcontext内に情報を保持しているので、contextの受渡ができれば移行画面で新たにデータ取得しなくてもcontext内のblocのデータが使えることがわかった。

Widget build(BuildContext context) {
    return MultiBlocProvider(
      providers: [
        BlocProvider<RankingBloc>(
	  // 初期実行するFunctionを「..」で呼び出すことが可能。
          create: (BuildContext context) => RankingBloc()..getRankingList(),
        ),
      ],

改善したい点

もっとルーティングをいい感じにしたいとは思った。
具体的にどんな感じにしたいかというと

  1. 拡張クラスでルーティング一覧を定義したい。
  2. mixinとかでResponse関数をいい感じに導入できるようにしたい。
  3. パラメータ準備されているので検索機能とか追加したい。

最後に

最近、業務がハードになってきつつあるが頑張って更新しよう思う。
できなかったらすいません。

Discussion