MENU

第7章Part1 mypageのページレイアウトを作成する

bubbleチュートリアルver2 第7章Part1 mypageのページレイアウトを作成する

目次-全章

第1章 bubbleについて(bubbleの基礎知識からアカウントの作成、アプリ開発まで))
第2章 簡単なアプリケーションを作成する
第3章 各エレメントとレスポンシブ機能について&ヘッダーを作成する
第4章Part1 新規登録・ログイン・認証・パスワードリセットページのページレイアウトを作成する
第4章Part2 新規登録・ログイン・パスワードリセットページにワークフローを実装する
第5章Part1 homeページに投稿表示欄、投稿処理機能を実装する
第5章Part2 homeページにページング機能を実装する
第6章 データベースの設計とプライバシーポリシーについて
第7章Part1 mypageのページレイアウトを作成する
第7章Part2 mypageに投稿表示欄、タブ切り替え機能を実装する
第8章Part1 ユーザーのフォロー、フォロー解除機能を実装する
第8章Part2 ユーザー情報を更新、削除(退会)できるようにする
第9章 ユーザー一覧ページの作成とユーザー検索機能を実装してみる&アプリの微調整とデバッグを行う
終章 チュートリアルのまとめ&よくある質問

この章ではマイページを作成します。

マイページ完成例
目次

7.1 マイページを作成する

マイページを作成します。

mypageを新規作成

基本的にページの設定はどのページも同じにします。

mypageのLayout設定
  • Container layout: Column
  • Apply gap spacing between elements: checked
  • Row gap(px): 34
  • Preset page width: Full width
  • Width for UI builder: 1200
  • Min width: 320
  • Min height: 600

Reusableで作ってあるHeaderを左メニューのReusable elementsから「Header」をページ上部にドラッグ&ドロップします。Headerの設定はhomeと同じです。

HeaderのLayout設定:
  • Make this element fixed-width: checked
  • Width:100%
  • Make this element fixed-height: unchecked
  • Min, Max height: 100px, inf
  • Fit height to content: checked

グループbodyをHeaderの下に配置します。

BodyのLayout設定:
  • Container layout: Column
  • Apply gap spacing between elements: checked
  • Row gap(px): 40
  • Horizontal alignment: center
  • Make this element fixed-width: unchecked
  • Min, Max width: 320px, inf
  • Fit width to content: checked
  • Make this element fixed-height: unchecked
  • Min height: 100px, inf
  • Fit height to content: checked

BodyのType of contentをUser, Data sourceをCurrent Userにします。Bodyの中にまずGroup_page_user_infoを作成します。Type of contentをUser, Data sourceをParent group’s Userにします。

Group_page_user_infoのLayout:
  • Container layout: Row
  • Apply gap spacing between elements: checked
  • Column gap: 16px
  • Make this element fixed-width: checked
  • Width:100%
  • Make this element fixed-height: unchecked
  • Min, Max height: 100px, inf
  • Fit height to content: checked
  • Padding: Left 10px, Right 10px

Group_page_user_infoの中に置くエレメント:ユーザーイメージ(Image)、名前(Text)、ツイート件数(Text)、フォロー中件数(Link)、フォロワー件数(Link)、退会(Link)、編集(Button)、ログアウト(Button)

ここでは一部のエレメントをhomeから拾ってみましょう。現在のブラウザのタブを右クリック等で複製し、片方のタブでhomeに移動し、上部にあるUser_Imageを選択した状態でShiftを押しながらGroup UserInfoを選択し、右クリックしCopy to another appをします。mypageのタブでGroup_page_user_infoを選択しグループ内に右クリックでPasteをします。Group UserInfoのLayoutにFit width to contentにチェックを入れます。

必要なエレメントをhomeから「Copy to another app」コピーする

このページでは複数の場所にUserの画像や名前などが現れるため、わかりやすくするために名前を変更しておきます。ユーザー画像(page_user_Image)、ユーザー名(Text_page_UserName)、ツイート件数(Text_page_user_PostNumber)に変更します。Group_page_user_infoのデータソースをあらかじめに設定したおかげで、データソース関連エラーなどが発生しませんので、余計に修正に時間をかけなくて済みます。

名前とツイート件数を選んでCtrl+G(command+G)でグループ化(名称:Group_page_UserText、container layout:Column)し、Link Mypageを選んでコピー&ペーストで複製し、フォローとフォロワーと退会するのリンクに名称を変更(Link_page_user_Following、Link_page_user_Follower、Link_withdraw)します。また、その3つのリンクを選んでCtrl+Gでグループ化(名称:Group_page_UserLink)させます。

注意:画像やリンクやテキストエレメントのスタイルがNoneなどになった場合、以前のスタイルを選んでおいてください。

mypageに追加されたGroup UserInfo

homeから拾ったGroup UserInfoの名前をGroup_page_userにし、Layoutを以下の通り変えます:

Group_page_userのLayout:
  • Container layout: Row
  • Apply gap spacing between elements: checked
  • Column gap: 16px
  • Make this element fixed-width: unchecked
  • Min, Max width: 240px, inf
  • Make this element fixed-height: unchecked
  • Min, Max height: 100px, inf
Group_page_UserText 及びGroup_page_UserLinkのLayout:
  • Container layout: Column
  • Apply gap spacing between elements: checked
  • Row gap: 8px
  • Make this element fixed-width: unchecked
  • Min, Max width: 110px, inf
  • Make this element fixed-height: unchecked
  • Min, Max height: 0px, inf
設定後のGroup_page_user

フォロー人数、フォロワー人数の表示はあとから設定します。投稿の件数はhomeからのままで大丈夫です(Do search for Tweet Created by = Current User :count 投稿)

以前お伝えしましたが、グループ化するときに元のLayoutが崩れてしまう場合がございます。上記のスクリーンショットの通りに二つのカラムにならない場合、以下の動画を確認し、各エレメントの揃えてみてください。

※時々スクリーンショットや動画の画面は白くなっていますが、気にしなくて大丈夫です。原因はViewでShow gridを外した状態でスクリーンショットや動画取ったためです。Show gridを付けたままで作成し続けて下さい。

退会を押し間違いのないように、Fit width to contentをcheckedにします。

Visual elements > Button からアカウント情報の編集ボタンとログアウトボタンをGroup_page_user_info内に配置します。

編集ボタンの名称を「Button_Edit」に変更し、デフォルトのStyle「Primary Button」からパラメータを変えずDetachして新たなStyle「Edit_button」として保存しておきます。

ログアウトボタンの名称は「Button_Logout」にし、ログアウト用のボタンStyleとして「Logout_button」を新しく作り、以下のパラメータを入力します。

Style Logout_buttonのAppearance: 
  • Font: Inter, 500
  • Font size 18px
  • Center alignment/中央揃え
  • Font color: Primary contrast #FFFFFF
  • Word spacing, Line spacing, Letter spacing: 0, 1, 2
  • Background style: Flat color
  • Color: #828282
  • Border style – all – borders: Solid
  • Roundness: 4
  • Width: 1
  • Color: #BDBDBD
  • Shadow style: None

デフォルトのConditionalを削除して以下のように設定します。

Style Logout_buttonのConditional設定
Button_EditとButton_logoutのLayout設定:
  • Vertical alignment: Top-aligned
  • Make this element fixed-width: checked
  • Width:150 px
  • Make this element fixed-height: unchecked
  • Min, Max height: 54px, inf
Group_page_userの完成

BodyのType of ContentがUserになっているか、Body内のユーザ関連のエレメントはParent Group’s Userのカラムを指定しているかどうかご確認してください。データソースが合わないとき、APIキーが結ばれていないとき、ワークフローなどにエラー発生したときなどに「0 issues」は赤くなり、問題の数を表していきます。

問題がないとき
設定によって問題発生しているとき

読んでみると問題が発生した理由を確認でき、クリックすると、問題発生したエレメントなどに移動し、赤文字で問題箇所を表してくれるので、現段階では0件のはずですが、1件以上であれば、解決しておいてください。

issue問題の例

例えば、上記のスクリーンショットの問題は、テキストタイプです。:countがついていないことで、dynamic dataがツイートのリストになってしまいます。テキストエレメントはリストデータを表すことができないですので、Moreをクリックし、:countを選んだら、問題は解決し、0 issues状態に戻ります。

7.2 マイページにログアウト処理を実装

ログアウト処理を実装

ログアウト処理を実装する

マイページの基本情報が表示できたところで、ログアウト処理を実装します。

Button logout(ログアウト)ボタンからワークフローを開始し、アクションはAccount > Log the user outを選択します。

Account > Log the user outを選択

これだけでログアウトは完了ですが、マイページに止まってしまうため、Go to page…アクションでloginページに遷移させます。

Destinationをloginに設定

プレビューして確認する

それでは一連の流れを確認しましょう。

ログインした状態でマイページを表示します。ログアウトしていた場合は、ログインして、https://(アプリ名).bubbleapps.io/mypage にアクセスしてください。

mypageのpreview画面

ログアウトボタンをクリックして、ログイン画面に遷移したら成功です。

7.3 編集ポップアップを作成する

マイページ画面で「編集する」ボタンをクリックしたときに、ユーザー名やアイコンを編集するポップアップを作成します。

Popupを配置

Containers > Popup を画面上に配置します。Popupの名称を「Popup_Edit」に変更し、Type of content:User、Data source:Current Userを選択します。

サイトやシステムによって設定は異なりますが、bubbleではポップアップを表示している際に背景の黒い部分をクリックするとポップアップが非表示になります。これを防止するには、「This popup can’t be closed by pressing ‘Esc’」にチェックいれます。

Popup_EditのLayout:
  • Container layout: Column
  • Apply gap spacing between elements: checked
  • Row gap: 30px
  • Make this element fixed-width: unchecked
  • Min, Max width: 0px, 720px
  • Make this element fixed-height: unchecked
  • Min, Max height: 100px, inf
  • Fit height to content: checked
  • Padding: Top 70px, Bottom 70px, Left 20px, Right 20px

Standard PopupのStyleを変更しますので、Styleを外して新たにEdit_profileを作成し、以下のようにStyle設定をします。

Style Edit_profileのAppearance設定:
  • Appearance
    • Background style: Flat color
    • Color: #FFFFFF
    • Grayout color: #000000 70%
    • Grayout blur: 0
    • Border style – all borders: Solid
    • Roundness: 5
    • Width: 1
    • Color: #F2F2F2
    • Shadow style: Outset
    • Horizontal offset: 2
    • Vertical offset: 2
    • Blur radius: 4
    • Spread radius: 0
    • Boxshadow color:#000000 100%

Popup内のエレメントを配置します。

各エレメントの配置
Popup_Editの構造&エレメント等の名称

ポップアップ内のGroupのデータソースをParent Group’s Userに設定しておいてください。

Text_popup_edit_nameはStyleをHeaderにして、Detach styleしCreate a new style(「Title_blue」)にします。の

Style Title_blueのAppearance:
  • HTML tag for this element (SEO): h2
  • Font: Inter, 700
  • Font size: 36px
  • Center alignment/中央揃え
  • Font color: #2D9CDE
  • Word spacing, Line spacing, Letter spacing: 0, 1.5, 2
  • Center the text vertically: checked
  • Background style: None
Text_popup_edit_nameのLayoutを設定:
  • Horizontal alignment: center
  • Make this element fixed-width: unchecked
  • Min, Max width: 0px, inf
  • Fit width to content: checked
  • Make this element fixed-height: unchecked
  • Min, Max height: 0px, inf
  • Fit height to content: checked
Group_popup_UserのLayout:
  • Container layout: Column
  • Apply gap spacing between elements: checked
  • Row gap: 50px
  • Horizontal alignment: center
  • Make this element fixed-width: unchecked
  • Min, Max width: 0px, 500px
  • Fit width to content: unchecked
  • Make this element fixed-height: unchecked
  • Min, Max height: 0px, inf
  • Fit height to content: checked
Group_popup_User_infoのLayout:
  • Container layout: Row
  • Container alignment: Space around
  • Apply gap spacing between elements: checked
  • Row gap: 10px
  • Column gap: 10px
  • Make this element fixed-width: unchecked
  • Min, Max width: 0px, inf
  • Fit width to content: unchecked
  • Make this element fixed-height: unchecked
  • Min, Max height: 100px, inf
  • Fit height to content: checked
Group_UsernameのLayout:
  • Container layout: Column
  • Apply gap spacing between elements: unchecked
  • Vertical alignment: Center
  • Make this element fixed-width: unchecked
  • Min, Max width: 0px, inf
  • Fit width to content: checked
  • Make this element fixed-height: unchecked
  • Min, Max height: 0px, inf
Group_ButtonsのLayout:
  • Container layout: Column
  • Apply gap spacing between elements: checked
  • Row gap: 16px
  • Make this element fixed-width: unchecked
  • Min, Max width: 0px, inf
  • Fit width to content: unchecked
  • Make this element fixed-height: unchecked
  • Min, Max height: 0px, inf

エレメントに関しまして、Picture Uploader以外LayoutはFixed width 100%にするか、FixedしないでMin, Max width: 0px, infにします。高さに関しまして、Inputはfixed50pxにし、テキストエレメントはfixedからチェック外し、Min, Max height: 0px, infかつFit height to contentにチェックします。ボタンはfixedからチェック外し、Min, Max height: 50px, inf+Fit height to contentにチェックするようにします。

Fixed widthの100%ではなく、特定の数字を入れると以下のようになりかねないため、気をつけてください。必ずResponsiveで画面を確認しつつ実装進めるようにしてください。

Responsiveで確認し、広さや高さがおかしくなったエレメントを整える

Picture Uploader_popupのData sourceはParent Group’s User’s imageにします。ちなみに、Parent Group’s Userの代わりに「Parent group’s thing」になっている場合、グループのデータソース設定済ませていないという意味なので、再度ご確認しすべてのポップアップ内のGroupはParent Group’s Userに設定しておいてください。

Picture Uploader_popupのLayout設定
  • Make this element fixed-width: checked
  • Width: 100px
  • Make this element fixed-height: checked
  • Height: 100px

Picture UploaderのプロパティエディタのAppearanceタブからDynamic imageをParent group’s User’s imageにし、Attach this fileをParent group’s Userにします。

Make this file privateにチェックを入れます。チェックを入れないと画像が外部の第三者からも画像が確認できてしまうためです。チェックを入れるとAttach this file toと表示されます。画像ファイルをプライベート化する場合、カラムに保存するのとは別に、テーブルのレコードに画像を紐づける必要があります。ユーザー画像なので、このユーザーに紐づけることにします。

Make this file privateにチェック入れる、Attach this file to Parent group’s Userにする。

第6章設定していない場合:Userにプライバシールールを設定しておきます。Data > Privacy タブでUserを選択し、Define a new ruleをクリックします。

Data > Privacy タブでUserを選択

loginという名前をつけて、「ユーザーがログインしているとき」という条件にし、以下のようにチェックを入れます。これで、ログインしているユーザーがUserのデータの閲覧、検索、紐づけたファイルの閲覧ができる設定になります。

「login」の設定

Designタブに戻って、ポップアップのInput_username_popupのInitial contentをParent Group’s User’s nameにし、Prevent “enter” key from submittingとThis input should not be emptyにチェックしておきます。これで、Popup Edit = Current User(自分自身)’s nameとなり、自分自身の登録した名前が表示されることになります。

「閉じる」ボタンのStyleを新しく「Close_Button」として作成し、設定します。

Style Close_ButtonのAppearance設定: 
  • Appearance
    • Font: Inter, 700
    • Font size 16px
    • Center alignment/中央揃え
    • Font Color: #4F4F4F
    • Word spacing, Line spacing, Letter spacing: 0, 1, 2
    • Background style: None
    • Border style – all – borders: Inset
    • Roundness: 4
    • Width: 1
    • Color: #CCCDCF

Stylesタブの中でLayoutではPadding Top 10px, Bottom 10px、ConditionalではWhen This Button is hovered → Boxshadow style: Outset, Boxshadow color: #000000の10%, Font weight: 900にします。

Boxshadow color: #000000の10%,設定

これでポップアップの設定が完成しました。ボタンのワークフローやポップアップ呼び出しなどは第8章で実装しますので、いったんそのまま残しておきます。

7.4 タブを作成する

タブの作成例

タブを内包するグループ「Group Tab」を配置します。

Group TabのLayout:
  • Container layout: Row
  • Apply gap spacing between elements: unchecked
  • Horizontal alignment: Center
  • Make this element fixed-width: unchecked
  • Min, Max width: 280px, 600px
  • Fit width to content: unchecked
  • Make this element fixed-height: unchecked
  • Min, Max height: 10px, inf
  • Fit height to content: checked

内部に3つのTextエレメントを配置します。

TextをGroupに配置

テキストの内容と名称はタイムライン(Tab_Timeline)、フォロー(Tab_Follow)、フォロワー(Tab_Follower)にします。各Textのサイズは、スマートフォンでも入りきるように320pxの1/3幅を最小値としますが、BodyにPaddingが左右20pxずつ設定されているため、280pxの1/3幅とします。割り切れないので90pxとすれば問題ありません。

各TabテキストエレメントのLayoutを以下の通りにします:

各TabテキストエレメントのLayout設定:
  • Make this element fixed-width: unchecked
  • Min, Max width: 90px, 200px
  • Fit width to content: unchecked
  • Make this element fixed-height: unchecked
  • Min, Max height: 72px, inf

新しいStyle Tabsを作って、Appearanceのパラメータを設定します。

TabsのAppearance設定
  • Font: Inter, 400
  • Font size: 16px
  • Center alignment/中央揃え
  • Font color: #333333
  • Word spacing, Line spacing, Letter spacing: 0, 1.4, 0
  • Center the text vertically: checked
  • Background style: Flat color
  • Color: #FFFFFF
実際に働く社員とカジュアル面談しませんか?

【毎週金曜日開催中】カジュアル面談しませんか?


参加はこちら!
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私たち株式会社ファンリピートは、ITを通じてお客様の課題解決を行うスタートアップベンチャーです。ノーコード・ローコードを用いたDX支援事業を主軸に、スピード感を持ってお客様のご要望にお応えしています。

2019年の創業から、出版業界・広告業界をはじめ、幅広い業界のデジタル施策を支援。財務管理・顧客管理などの基幹・業務システムから、新規Webサービスなど開発前検証フェーズのシステム導入支援まで、ワンストップでサポートを実施しています。この先も本質的なご提案を通じて、お客様の課題を解決し続けます。

コメント

コメントする

目次